【发布时间】:2020-08-04 13:44:33
【问题描述】:
我们已经通过 Authorize.Net 在 PHP (https://developer.authorize.net/api/reference/features/paypal.html) 中实现了 Paypal Express API。它在一年多前完成,并且一直运行良好。我们最近意识到,当 Paypal 授权在第 2 步“仅授权,继续”中更新时,它不会在 Authorize.Net 中更新。发生捕获时,它仅捕获原始金额,尽管 Paypal 具有正确的更新金额。
这是我们的流程(按照 Authorize.Net/Paypal API 说明):
- 我们向 Authorize.Net/Paypal 发送请求以创建交易。里面是商品的总成本。
- Paypal 返回一个安全链接,我们将用户重定向到该链接
- Paypal 使用令牌将用户重定向回我们。我们使用令牌来获取用户的运输数据并获取授权/交易 ID。
- 我们根据运输数据计算税款,并将用户发送到确认页面进行审核。
- 当用户提交时,我们发送第二个授权请求(仅授权,继续),如文档所示,使用网关交易 ID 以新金额更新交易等。
现在的问题是,Authorize.Net 仍然有原始金额(不含税)。当我们通过相同的 API 对该交易运行捕获时,由于某种原因,它只捕获原始金额,而不是含税金额。我们现在进行了大量交易,但没有收到任何一笔交易的税款。
这是 Paypal 和 Authorize.Net 中的相同交易。 Paypal 的屏幕显示授权价格为 120 美元,更新价格为 130.xx 美元(含运费)。
Authorize.Net 显示它以 120 美元的价格成功捕获。
这些是相同的交易,我们只使用 Authorize.Net Paypal Express API。 Authorize.Net 怎么没有得到更新?为什么它没有捕获全部金额?
【问题讨论】:
-
我已经得出结论,这是 Authorize.Net Paypal Express API 中的一个错误。 Paypal 显示正确、更新的交易金额,但 authorize.net 没有。因此,当我使用 Authorize.Net API 进行捕获时,我被税前金额所困扰。正如 Paypal 支持和其他人所建议的那样,我尝试以高于授权的金额进行捕获,并且 Authorize.Net 返回错误:“请求结算的金额不能大于授权的原始金额。”这很合乎逻辑。
标签: php paypal authorize.net