【发布时间】:2023-04-06 16:23:01
【问题描述】:
从 sub pos 系统向主系统发送发票详细信息。 Web 浏览器中的任何响应都没有错误。来自https://example.com 的请求。但是相同的代码在邮递员中工作正常。邮递员给出成功响应。
php 中的代码
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'urlhere',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"key":"asdasdsad",
"shopId":99999,
"SHOP_ID": "DUF SHOP",
"SHOP_NAME": "DUFF SUB",
"INVOICE_NUMBER": "26/111",
"TRANSACTION_DATE": "2020-08-25 7:31:20",
"TRANSACTION_TIME": "7:31:20",
"TOTAL_AMOUNT_BEFORE_DISCOUNT": 150.00,
"DISCOUNT_AMOUNT": 50.00,
"DISCOUNT_TYPE": "NO",
"TOTAL_AMOUNT_AFTER_DISCOUNT": 100.00,
"productDetails":[
{
"INVOICE_NUMBER":"5210/D",
"PRODUCT_NAME": "PRODUCT",
"PRODUCT_CATEGORY": "cat",
"PRODUCT_SUB_CATEGORY": "subCat",
"BRAND_NAME": "Brand",
"QUANTITY":100,
"UNIT_PRICE": 250.00
}],
"currencyDetail":[
{
"INVOICE_NUMBER":"1",
"PAYMENT_METHOD": "CASH",
"CURRENCY": "USD",
"ACTUAL_PAYMENT_CURRENCY_TYPE":"USD",
"amount":250.00
}
]
}
',
CURLOPT_HTTPHEADER => array(
'Content-Type: text/plain'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
【问题讨论】:
-
小提示:Postman 可以选择为您生成 PHP 代码。在右侧,查找名为“代码”或用
</>符号表示的选项,然后选择PHP - cURL。然后您可以比较差异。 -
当你遇到这样的问题时,从debugging你的cURL请求开始,看看服务器实际上说了什么。在不知道服务器响应什么的情况下,您基本上只是在猜测,这是相当欠佳的。
-
@El_Vanja 没有区别。我检查了
-
不应该
'Content-Type: text/plain'是'Content-Type: application/json',因为你正在发送 json? -
@MagnusEriksson 它必须是 Content-Type: text/plain,现在我收到错误无法连接到“domainofmainsystem”端口 8005:连接被拒绝