【发布时间】:2015-06-29 20:39:20
【问题描述】:
我不是很擅长编程,但现在我有一个学习项目来测试一个简单的php购物车
这个>>http://www.sanwebe.com/2013/06/creating-simple-shopping-cart-with-php/comment-page-1
并用它实现 klarna 结帐。
这个klarna >> https://developers.klarna.com/en/se+php/kco-v2/checkout-api
我让它“工作”,但不是将价格传递给 klarna。
价格值的格式好像有问题?
示例:我在篮子里放了价值 200.50 美元的东西。
由于 klarna 使用不带点和逗号的值,我使用以下代码清除 $total 值。
$extotal = number_format("$total","2","","");
如果我像这样打印出值
echo '<strong>Total : '.$extotal.'</strong> ';
它打印这个值 20050,原价是 200.50
但是当我在下面的 klarnas php 代码中简单地使用这个值 $extotal 时它不起作用。
$cart = array(
array(
'reference' => '123456789',
'name' => 'Klarna t-shirt',
'quantity' => 1,
'unit_price' => $extotal,
'tax_rate' => 2500
),
array(
'type' => 'shipping_fee',
'reference' => 'SHIPPING',
'name' => 'Shipping Fee',
'quantity' => 1,
'unit_price' => 1000,
'tax_rate' => 2500
));
我在 klarna checkout DIV 中收到以下消息
string(9) "API 错误" array(3) { ["http_status_code"]=> int(400) ["http_status_message"]=> string(11) "Bad Request" ["internal_message"] => string(32) "格式错误:cart.item.unit_price" }
有人可以指导一下吗=)
【问题讨论】:
-
如果输出为 json,则不要使用 number_format。产生一个字符串,而 klarna 很可能需要一个 int。
"unit_price":20050和"unit_price":"20050"完全不同。
标签: php shopping-cart