在我的商店,我需要取消客户订单并退还他们支付的总金额。
在PayPal结账时,客户会看到他们的物品成本和运费,然后是总成本。当我尝试通过NVP API发出全额退款时,它只退还商品的金额,不包括他们支付的运费。
有没有办法确定是否退还绝对总金额?
最初我只通过了PayPal交易ID,因为它默认为全额退款,
'TRANSACTIONID' => $paypalTransactionId
但我从API传回的数据中收到以下内容。
["TOTALREFUNDEDAMOUNT"]=> string(5) "64.40"
总金额应 69.40 。 (产品为64.00,运费为5.00)。
我自己试过通过总金额(AMT),但API抱怨退款需要小于或等于产品的成本。
'TRANSACTIONID' => $paypalTransactionId,
'AMT' => $totalPrice,
'REFUNDTYPE' => 'Full'
并尝试通过运费
'TRANSACTIONID' => $paypalTransactionId,
'SHIPPINGAMT' => $shipping_price,
'REFUNDTYPE' => 'Full'
这两项工作都没有。
一种可能的方法是,当客户退房并将其与产品成本混合时,不通过Paypal传递任何运费。但这并不是一种最佳的客户体验,而且感觉有点笨拙。
答案 0 :(得分:0)
您必须从系统中提取小计以获得退款,而不是总额。但是,简单的修复。如果您要全额退款,请将AMT和REFUNDTYPE参数保留在请求之外。这将默认为全额退款。只有在您进行部分退款时才需要这些。
答案 1 :(得分:0)
我修复此问题,原来购买错误。当客户下订单时,我将以下内容发送给PayPal:
[AMT] => 60.00 // this amount should contain total including shipping
[ITEMAMT] => 60.00
[SHIPPINGAMT] => 4.99
但客户仍然收取正确的64.99。
将运费增加到[AMT]会导致客户仍然被收取64.99(而不是像我想象的那样69.98)。
[AMT] => 64.99
[ITEMAMT] => 60.00
[SHIPPINGAMT] => 4.99