使用REST API设置paypal订单的运费和折扣时遇到一些麻烦。
此处https://github.com/paypal/rest-api-sdk-php/blob/master/lib/PayPal/Api/Amount.php我看到最后一种方法是setDetails()
,所以我使用Details()
类来设置发货,然后我拨打了$amount->setDetails($details)
,但每次我得到400 error response
{1}}。
这是代码
// $shipping_cost = 10; $subtotal = 100; $total = 110;
$details = new Details();
$details->setShipping($shipping_cost);
$details->setShipping($subtotal);
// Specify the payment amount.
$amount = new Amount();
$amount->setCurrency($currency);
$amount->setTotal($total);
$amount->setDetails($details);
可以肯定的是,如果我移除$details
部分,它会被重定向到PayPal,但运费不会显示出来。
此错误是因为总计有些错误,只有在运费为0时才有效。
我也试过设置$amount->setTotal($total);
,但没有运气。
这与文档站点上的代码完全相同,但它不起作用。
请帮我解决,我正在与它斗争2天,他们的文档根本没有帮助我。
谢谢。
答案 0 :(得分:3)
您收到400响应代码,因为小计,税金和运费未累计总金额。
尝试声明以下变量以进行测试:
$subtotal = 100; // These are just test values for this example
$ship_tax = 10;
$ship_cost = 10;
$currency = 'USD';
$total = $subtotal + $ship_tax + $ship_cost;
然后:
$details = new Details();
$details->setSubtotal($subtotal)
->setTax($ship_tax)
->setShipping($ship_cost);
$amount = new Amount();
$amount->setCurrency($currency)
->setTotal($total)
->setDetails($details);