我有一個包含多個訂單項(特別是 15 個)的訂單,我正在嘗試使用引數遍歷 id 我在這里缺少什么?:
foreach($line_ids as $key => $id ) {
$params = [
"order_lines" => [
"accepted" => true,
"id" => $id
]
];
$data = json_encode($params);
echo '<pre>';
print_r($data);
echo '</pre>';
}
輸出看起來像這樣:
{
"order_lines":{
"accepted":true,
"id":"75167652-1"
}
}
但每個行專案都需要這樣:
{
"order_lines": [
{
"accepted": true,
"id": "75261431-1"
}
]
}
這是單個 id 的 CURL:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl . $order_id . '/accept',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"order_lines": [
{
"accepted": true,
"id": "75261431-1"
}
]
}
',
CURLOPT_HTTPHEADER => array(
'Authorization: xxxxxx-xxxxx-xxxxx-xxxxx',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
這是我在上面的 foreach 中嘗試過的多個 id 的 CURL。:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $baseUrl . $order_id . '/accept',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => array(
'Authorization: xxxxxx-xxxxx-xxxxx-xxxxx',
'Content-Type: application/json'
),
));
$accept_orders = curl_exec($curl);
curl_close($curl);
echo $accept_orders . '<br>';
但這是我為每個行專案得到的輸出:
{ "message" : "Body is required", "status" : 400 }
uj5u.com熱心網友回復:
您得到的錯誤與陣列無關,它表示資料是空的。
可能是您沒有在 curl 連接上啟用 POST 請求導致此問題。
CURLOPT_POST => true
陣列示例;
<?php
$ids = array(1,2,3,4,5);
$params = array();
foreach($ids as $id)
{
$params['order_lines'][] = ['id' => $id,'accepted' => 'true'];
}
$json = json_encode($params,JSON_PRETTY_PRINT);
print_r($json);
?>
{
"order_lines": [
{
"id": 1,
"accepted": "true"
},
{
"id": 2,
"accepted": "true"
},
{
"id": 3,
"accepted": "true"
},
{
"id": 4,
"accepted": "true"
},
{
"id": 5,
"accepted": "true"
}
]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/459350.html
下一篇:如何成功呼叫此端點?
