我在沙盒中使用Braintree marketplace,我有一个问题。
我在生成client_token时使用客户ID,将payment_nonce保存在我的数据库中,并在以后( 3-4分钟内)使用它到submit_for_settlement。问题是每个事务都需要一个唯一的nonce,但是如果我在2-3分钟内提交两次Dropin UI,我会得到相同的nonce,第二个事务失败并出现错误:无法使用付款方式nonce不止一次。有没有办法确保我得到的是唯一的nonce?谢谢
发布于 2015-03-30 05:46:26
尝试使用transaction.submit_for_settlement提交原始事务进行结算,而不是使用相同的随机数创建另一个事务
付款方式随机数是一次性使用。要在服务器端集成中多次引用同一父方法,可以在vault中创建支付方法令牌。
一般来说,你永远不应该在数据库中存储支付方法nonce,因为它们是短暂的和一次性使用的。
https://developers.braintreepayments.com/ios+ruby/reference/request/transaction/submit-for-settlement https://developers.braintreepayments.com/ios+ruby/start/vault
发布于 2017-01-24 23:57:26
如果您一直在照本宣科,但仍然偶尔收到此错误,很可能是因为用户多次单击表单提交按钮而没有刷新。这将导致第一次提交正确完成,但您将在第二次表单提交时收到此错误(它使用与第一次提交相同的nonce在毫秒后到达)。
在第一次单击后禁用表单提交按钮为我解决了这个问题(请参阅here)。
https://stackoverflow.com/questions/29324089
复制相似问题