【发布时间】:2022-11-19 20:07:13
【问题描述】:
我需要有序地发送我的购物车内容。
我可以按如下方式获取我的订单:
foreach ($jcart->get_contents() as $item) {
$queryString .= 'name' . $count. '=' . urlencode($item['name']);
$queryString .= 'unit_price' . $count . '=' . urlencode($item['price']);
$queryString .= 'quantity' . $count . '=' . urlencode($item['qty']);
$queryString .= 'total_amount' . $count . '=' . (urlencode($item['qty']) * urlencode($item['price']));
// Increment the counter
++$count;
}
我想按如下方式发送:
$data = <<<DATA
{
"intent": "buy",
"purchase_country": "GB",
"purchase_currency": "GBP",
"locale": "en-GB",
"order_amount": 10,
"order_tax_amount": 0,
"order_lines": [
{
"name": "name0",
"quantity": quantity0,
"unit_price": unit_price0,
"total_amount": total_amount0
},
{
"name": "name1",
"quantity": quantity1,
"unit_price": unit_price1,
"total_amount": total_amount1
}]
}
DATA;
我怎样才能让我的每个循环来填充订单。所以他们可以像上面的例子一样发送
我试过了:
$data = <<<DATA
{
"intent": "buy",
"purchase_country": "GB",
"purchase_currency": "GBP",
"locale": "en-GB",
"order_amount": 10,
"order_tax_amount": 0,
"order_lines": [$queryString]
}
DATA;
这需要按如下方式发送:
$url = "https://api.playground.klarna.com/payments/v1/sessions";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Authorization: Basic $auth",
"Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
这不起作用 欢迎任何帮助
【问题讨论】:
-
使用正确的结构创建数组并使用
json_encode()而不是尝试自己制作 JSON 字符串。