Paypal 显示一个金额,但收取另一个金额
Posted
技术标签:
【中文标题】Paypal 显示一个金额,但收取另一个金额【英文标题】:Paypal displays one amount, but charges another 【发布时间】:2017-07-10 09:31:15 【问题描述】:我正在尝试实施优惠券折扣。
我遇到的问题是,虽然 Paypal识别请求了折扣,但它忽略了它。有趣的是,Paypal 向买家显示一个金额,但收取另一个金额。这怎么可能?
请查看以下截图:
您可以清楚地观察到,正在使用优惠券,并且要收取的金额为3,20 GBP。
但是,当用户继续时,他将被收取 4,00 英镑,全额:
以下是发送到 Paypal 的对应 NVP 字符串(在调用 curl_exec()
之前)的值:
METHOD=SetExpressCheckout
VERSION=76.0
PWD=*something*
USER=e-shop_api1.somesite.com
SIGNATURE=somesignature
ReturnUrl=http%3A%2F%2Fwww.example.com%2Fcheckout.php%3Faction%3Dnotify
CANCELURL=http%3A%2F%2Fwww.example.com%2Fshopping-bag%2F
PAYMENTACTION=Sale
CURRENCYCODE=GBP
PAYMENTREQUEST_0_CURRENCYCODE=GBP
ALLOWNOTE=1
PAYMENTREQUEST_0_SHIPPINGAMT=0.00
PAYMENTREQUEST_0_AMT=3.20
PAYMENTREQUEST_0_ITEMAMT=3.20
// Product
L_PAYMENTREQUEST_0_QTY0=1
L_PAYMENTREQUEST_0_AMT0=4
L_PAYMENTREQUEST_0_NAME0=Some+Item+-+SIZE+%2F+1+size
L_PAYMENTREQUEST_0_NUMBER0=THE+PRODUCT+02355
// Coupon
L_PAYMENTREQUEST_0_QTY1=1
L_PAYMENTREQUEST_0_AMT1=-0.80
L_PAYMENTREQUEST_0_NAME1=Coupon
TL;DR
为什么 Paypal 显示一个金额,然后收取另一个金额,以及如何解决这个问题?
【问题讨论】:
英镑的小数点分隔符用逗号而不是句点很奇怪。 我的猜测是前端的东西没有测试负数,但最终的支付屏幕是。您可能需要直接打折产品。 @Augwa 已经这样做了,但无济于事 【参考方案1】:DoExpressCheckoutPayment API 请求中的总金额很可能像 PAYMENTREQUEST_0_AMT=4
一样设置为 4,因此用户需要按传递的值付费。或许你可以把 DoExpressCheckoutPayment API 的请求贴出来让我看看?
【讨论】:
我已经更新了 NVP 字符串的数据。请检查一下。另外,请记住,这些值是在就在curl_exec(..)
被调用之前提取的。
您帖子中的 NVP 字符串显示了 SetExpressCheckout API METHOD=SetExpressCheckout
的请求,它将返回一个令牌,付款人将被重定向到 PayPal 以验证付款,然后重定向回您的 ReturnUrl在 Set 调用中设置。在您调用 DoExpressCheckoutPayment API 之前,此时不会向付款人收费,其中金额可能设置为“4”。无论 SetExpressCheckout 中的金额如何,PayPal 都会对 DoExpressCheckoutPayment 中传递的金额值收费。
是的,这是我发现的错误。我认为您确实应该将该信息包含在未来用户的答案中以上是关于Paypal 显示一个金额,但收取另一个金额的主要内容,如果未能解决你的问题,请参考以下文章
Paypal NVP API 重复配置文件升级配置文件一次收取剩余金额和下一个计费周期