【问题标题】:Braintree flaw with nonces?随机数的布伦特里缺陷?
【发布时间】:2021-03-18 05:21:17
【问题描述】:
我想知道这是braintree的缺陷还是我不理解。在下图和文档中:https://developers.braintreepayments.com/start/overview 的步骤是
- 客户从我的服务器请求令牌
- 我给他们一个令牌
- 他们通过将所有信息和银行详细信息发送到 Braintree 来完成付款
- Braintree 给了他们一个随机数。
- 客户给了我这个随机数
- 我使用 Braintree 的服务器验证该随机数
但是,在第 4 步中,为什么 Braintree 将令牌提供给客户,而不是直接向我的服务器发送令牌或其他东西?如果客户付款然后关闭标签怎么办。这意味着无法进行第 5 步和第 6 步,并且这笔付款被搁置了。你如何解决这个问题?我不希望客户付款后关闭他们的标签,然后我必须手动分配他们的订单。
【问题讨论】:
标签:
payment-gateway
braintree
braintree-sandbox
【解决方案1】:
这个流程看起来很标准。我认为这里没有缺陷。
为什么 Braintree 将令牌提供给客户,而不是直接向我的服务器发送令牌或其他东西?
客户的浏览器直接连接到 Braintree,以防止您的服务器暴露于任何信用卡信息。这大大缩小了您的 PCI 范围 - 这对您有利。在此交互过程中不涉及您的服务器,因此 Braintree 不知道将该 nonce 发送到哪里。
实施某种类型的系统,让 Braintree 与您的服务器联系以异步提供随机数,这会使所有相关人员的流程变得非常复杂。
如果客户付款然后关闭标签怎么办。这意味着无法进行第 5 步和第 6 步,并且这笔付款被搁置了。
第 3 步是纯粹的标记化。它实际上并不向客户收费。在您在步骤 6 中创建交易之前,客户的付款信息一直保留在 Braintree 一侧(该图将其描述为步骤 5)。如果客户在使用 Braintree 存储付款信息和您使用 nonce 创建交易之间关闭浏览器,则不会向客户收费。据推测,Braintree 会在一段时间后过期付款详细信息。