首页 > 解决方案 > Authorize.Net Paypal Express PHP API:交易未在 Authorize.Net 中更新,也未捕获正确金额的问题

问题描述

我们已经通过 Authorize.Net 在 PHP ( https://developer.authorize.net/api/reference/features/paypal.html ) 中实现了 Paypal Express API。它在一年多前完成,并且一直运行良好。我们最近意识到,当 Paypal 授权在第 2 步“仅授权,继续”中更新时,在 Authorize.Net 中没有更新。发生捕获时,它仅捕获原始金额,尽管 Paypal 具有正确的更新金额。

这是我们的流程(遵循 Authorize.Net/Paypal API 说明):

  1. 我们向 Authorize.Net/Paypal 发送请求以创建交易。里面是商品的总成本。
  2. Paypal 返回一个安全链接,我们将用户重定向到该链接
  3. Paypal 使用令牌将用户重定向回我们。我们使用令牌来获取用户的运输数据并获取授权/交易 ID。
  4. 我们根据运输数据计算税款,并将用户发送到确认页面进行审核。
  5. 当用户提交时,我们发送第二个授权请求(仅授权,继续),如文件所示,使用网关交易 ID 以新金额更新交易等。

现在的问题是,Authorize.Net 仍然有原始金额(不含税)。当我们通过相同的 API 对该交易运行捕获时,由于某种原因,它只捕获原始金额,而不是含税金额。我们现在正在进行大量交易,但没有收到任何一笔交易的税款。

这是 Paypal 和 Authorize.Net 中的相同交易。Paypal 的屏幕显示授权价格为 120 美元,更新价格为 130.xx 美元(含运费)。

贝宝接口

Authorize.Net 显示它以 120 美元的价格成功捕获。

Authorize.Net 接口

这些是相同的交易,我们只使用 Authorize.Net Paypal Express API。Authorize.Net 怎么没有得到更新?为什么它没有捕获全部金额?

标签: phppaypalauthorize.net

解决方案


当我们通过相同的 API 对该交易运行捕获时,由于某种原因,它只捕获原始金额,而不是含税金额。

您需要:

  • 捕获第二个授权,而不是原始交易。这应该是正确的解决方案。
  • 发送包含您正在捕获的新金额的详细信息的捕获请求。

推荐阅读