在Authorize.NET webhook响应上保留asp.net会话数据

时间:2018-03-29 19:57:13

标签: asp.net payment-gateway authorize.net authorize.net-webhooks

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

Authorize.NET Accept Hosted需要2个网址才能进行配置。

  1. 返回URL,在成功付款后将用户重定向到主页。
  2. 一个webhook网址,Authorization.Net webhook将向其发送transID。
  3. 在重定向时,我需要访问存储在当前会话中的特定于应用程序的付款细节。 注意:这些不是authorize.net付款详细信息,我可以从webhook-> transID-> GetTransactionDetails

    获取它们

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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