如何使用 Accept.js 获得两个独立的随机数?

How To Get Two Separate Nonces with Accept.js?

我正在使用 Authorize.Net Accept.js for a custom cart with subscriptions using the ARBCreateSubscriptionRequest API,我们将付款随机数作为不透明数据元素传递给它。

尽管这有效,但它有以下 3 个错误,它们发生在 ARBCreateSubscriptionRequest(订阅)但不会发生在 CreateTransactionRequest(单次付款):

与 Authorize.Net 技术支持合作,他们确认正确的程序是:

  1. 使用CreateTransactionRequest创建订阅的初始付款,从而给出即时响应并解决上面列出的问题。
  2. 然后,他们说要在 ARBCreateSubscriptionRequest 之后,其中开始日期是他们订阅的下一个期限。

当然,是的,即使没有 CreateTransactionRequest,但仅使用 ARBCreateSubscriptionRequest 当订阅初始付款在 24 小时后开始时,该卡将失败并且可以将 webhook 消息发送到我的购物车让我知道禁用我启用的任何内容。但是,立即响应会更合适,并且肯定会减轻潜在的客户挫败感和商家挫败感。另外,如果一个人在购买的同时运送东西,那么让商家知道购买有效是至关重要的。

例如,假设我每月收取 9 美元的订阅费。当月的第一笔付款是 CreateTransactionRequest 9 美元。然后,创建ARBCreateSubscriptionRequest,延迟从下个月的第一天开始,间隔为每个月。因此,客户在购买后立即获得初始 9 美元的处理 (pass/fail)。然后,当下个月开始时,他们的订阅费为每月 9 美元。

好的,我 100% 明白了。但是我在文档或支持票中没有得到明确的答案。 CreateTransactionRequestARBCreateSubscriptionRequest 都需要自己唯一的支付随机数

关键问题:如果使用Accept.js生成单个nonce,如何得到两个nonce?如果我使用 Accept.js 生成第二个随机数,它会使前一个随机数无效吗?我很困惑,文档没有解释。

如果您想从 Accept.js 随机数验证卡信息、处理初始交易然后创建订阅,您可以尝试以下顺序:

  1. createTransactionRequest 与随机数一起使用并设置 createProfile=true。网关将处理您的交易,包括验证卡号、有效期和 CCV。如果成功,将创建客户资料。
  2. 使用客户资料创建您的订阅。