0

我正在尝试将 Authorize.NET 从 CIM 升级到 Accept Hosted,并遇到了这个问题:

Authorize.NET Accept Hosted需要 2 个 url 用于配置。

  1. 返回 URL,支付成功后将用户重定向到主页。
  2. 一个webhook url,Authorization.Net webhook 将向其发布 transID。

在重定向时,我需要访问存储在当前会话中的特定于应用程序的付款详细信息。注意:这些不是 authorize.net 付款详情,我可以从 webhook->transID->GetTransactionDetails 获取它们

在 CIM 中,重定向 url 包含来自 AuthorizeNET(transID 等)的付款信息,以及特定于应用程序的会话付款信息。所以我能够在一个处理程序中处理它们,该处理程序在重定向上被调用。

但是在新的 api 中,当 webhook 在我的 webhook URL 上发送发布数据时,它会异步执行,使用与进行付款的会话不同的会话。因此,当我从 AuthorizeNET 收到 transID 和后续付款详细信息时,它不知道会话相关应用程序特定的付款详细信息。

我的问题是,在收到 Authorize.Net 的付款详细信息后,如何保留特定于会话的数据?

有没有人遇到过类似的问题?解决此问题的最佳方法是什么?

4

1 回答 1

1

您无法跨系统维护会话,因此您需要另一种方法来存储该数据并在用户返回您的站点后检索它。执行此操作的常用方法是将数据保存在数据库中,并将该数据的标识符存储在 cookie 或自定义字段中,Authorize.Net 将作为事务的一部分为您传递并返回重定向。在这种情况下,您传入的返回 URLhostedPaymentReturnOptions.url可以包含带有该标识符的查询字符串(即https://www.yoursite.com/return_url?id=12345)。然后,一旦用户返回您的站点,您就可以使用该标识符从数据库中检索他们的会话数据并将其添加回他们的会话中。

于 2018-03-29T23:39:17.983 回答