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 重复配置文件升级配置文件一次收取剩余金额和下一个计费周期

前八个月的 Paypal 定期资料费用试用金额

如何设置不同金额的 PayPal 每月付款

Paypal预先批准的付款,不显示价格?

如何在不存储 CVV 代码的情况下每 2 个月向某人收取可变金额?

如何在android中将金额从一个paypal帐户转移到另一个paypal帐户