E00114 在 Authorize.net 中使用接受 JS 创建带有付款随机数的订阅时,OTS 令牌无效
Posted
技术标签:
【中文标题】E00114 在 Authorize.net 中使用接受 JS 创建带有付款随机数的订阅时,OTS 令牌无效【英文标题】:E00114 Invalid OTS Token while creating subscription with payment nonce using accept JS in Authorize.net 【发布时间】:2018-05-14 16:20:50 【问题描述】:我正在使用 authorize.net 的接受 js 和 C# SDK 构建应用程序。在这里,我使用接受 js 令牌通过 authorize.net 进行信用卡付款,并能够成功创建交易和客户资料。但是当我尝试使用客户资料 ID 和付款资料 ID 创建订阅时,我收到“E00040 Record Not Found”错误响应。
我也尝试在创建交易后使用另一个令牌创建订阅,但收到“E00114 Invalid OTS Token”错误响应。
什么会导致 authorize.net 返回这些错误?
期待您的快速回复。
【问题讨论】:
【参考方案1】:我今天遇到了这个问题,虽然我在后端使用 php 而不是 C#。我打电话给他们的技术支持,结果如下:
不幸的是,至少截至 2018 年 8 月,与沙箱相比,他们的生产端点实际上在服务器资源上相当过载。这可能导致这种误导性的Invalid OTS Token
错误,这也可能有其他几个原因。技术人员向我解释说,如果您在生成令牌然后立即提交交易的支付表单上有一个提交按钮,那么您应该添加某种睡眠调用(例如,在 PHP 上,即 sleep(5);
)。我们尝试让它在最少 4 秒内工作,但只是间歇性地工作。他告诉我,如果在 4 或 5 秒的睡眠呼叫后失败,请在再等待 2 秒后再次尝试该呼叫,然后再放弃并建议客户致电您的呼叫中心或使用您的其他支持渠道。
在沙箱中,他们不会关心您是否在事务中使用 cert.pem 文件。在生产中并非如此——你需要确保你已经加载了。如果您搜索官方 Authorize.Net 文件,您可以从 Github 上获取该文件。
【讨论】:
以上是关于E00114 在 Authorize.net 中使用接受 JS 创建带有付款随机数的订阅时,OTS 令牌无效的主要内容,如果未能解决你的问题,请参考以下文章
Authorize.Net Paypal Express PHP API:交易未在 Authorize.Net 中更新,也未捕获正确金额的问题