3

我在沙盒中使用 Braintree 市场,我有一个问题/疑问。
我在生成 client_token 时使用客户 ID,将 payment_nonce 保存在我的数据库中并稍后(在 3-4 分钟内)使用它来提交_for_settlement。问题是每笔交易都需要一个唯一的随机数,但如果我在 2-3 分钟内提交两次 Dropin UI,我会得到相同的随机数,第二次交易失败并出现错误:不能多次使用付款方式随机数。有没有办法确保我得到唯一的随机数?谢谢你

4

2 回答 2

3

不要使用相同的 nonce 创建另一个交易,而是尝试使用 transaction.submit_for_settlement 提交原始交易以进行结算

付款方式随机数是一次性使用。要在服务器端集成中多次引用相同的父方法,您可以在保险库中创建支付方式令牌。

通常,您永远不应该在数据库中存储付款方式随机数,因为它们是短暂的并且只能一次性使用。

https://developers.braintreepayments.com/ios+ruby/reference/request/transaction/submit-for-settlement https://developers.braintreepayments.com/ios+ruby/start/vault

于 2015-03-29T21:46:26.423 回答
0

如果您按照本书的所有内容进行操作,但仍然偶尔会出现此错误,这可能是因为用户多次单击表单提交按钮而没有刷新。这将导致第一次提交正确完成,但您将在第二次提交表单时收到此错误(该错误在毫秒后到达,使用与第一次提交相同的随机数)。

第一次单击后禁用表单提交按钮为我解决了这个问题(请参见此处)。

于 2017-01-24T15:57:25.887 回答