在不成功的 Braintree 交易期间返回参数/信用卡信息

Posted

技术标签:

【中文标题】在不成功的 Braintree 交易期间返回参数/信用卡信息【英文标题】:Returning params/credit card info during unsuccessful Braintree transaction 【发布时间】:2014-10-22 22:58:45 【问题描述】:

当我提交了一个braintree 交易并且它不成功时,它会返回我可以使用的result.params。但是,由于 PCI 合规性原因,它不能返回 CC 或 CVV 信息。

由于是不成功的txn,页面呈现当前页面。我想自动填充付款信息,无论是抄送还是贝宝交易,所以用户不需要重新输入付款。我认为这是糟糕的用户体验。

如果无法重新填充付款信息,我能否以某种方式重用生成的 payment_method_nonce 并将其发送到 Braintree。浏览文档,我似乎找不到任何可以用来解决这个问题的东西。

https://developers.braintreepayments.com/javascript+ruby/reference/general/result-handling/result-objects#params

【问题讨论】:

【参考方案1】:

我在布伦特里工作。如果您在集成方面寻求更多帮助,您可以随时get in touch with our support team。

不要使用付款方式 nonce 创建交易,而是使用 nonce 创建一个payment method。这将为您提供一个可重复使用的令牌,然后您可以使用它来创建交易。

来自"Getting Started" guide:

创建交易

从Braintree client SDK获得,支付方式nonce可以在任何地方使用信用卡信息或支付方式token在Braintreeserver-side client libraries中使用。

因此,由于您可以从信用卡参数创建付款方式令牌,因此您也可以从付款方式随机数创建它。

【讨论】:

谢谢。我联系了 Braintree,我想做的唯一方法似乎是在 Braintree 中创建一个客户,并从付款信息(nonce)生成一个付款令牌,并使用该信息。我总是可以创建自己的表单,或者添加隐藏的输入/jquery hack,但这似乎不安全,我想使用他们的支付 ui 和 paypal 集成。 我建议您在建议(或使用)此方法之前阅读 PCI DSS。这不仅仅是安全问题——处理信用卡号码会造成严重的合规负担。 braintreepayments.com/blog/…【参考方案2】:

只需将其发布到设置为make the request 的您自己的控制器/操作。从那里,您可以检查交易是否成功并做出相应的回应。您还可以根据需要完全访问参数。你可能想keep them out of your logs。

【讨论】:

使用 Braintree(和其他一些网关),信用卡参数永远不会发布到他的页面——其中一个优点是您不必存储信用卡信息,它附带了一整套头痛。所以这个解决方案行不通。 @agf:感谢您的反馈,但您不能简单地制作一个包含必要字段的表单,提交给您自己的控制器,视图类似于github.com/braintree/braintree_ruby_examples/blob/master/…,然后发布这些值到 Braintree::TransparentRedirect.url “手动”?我承认我没有专门用 Braintree 做这件事,但我对许多其他服务使用了类似的方法,而且在这种情况下它似乎也能很好地工作。如果我离基地很远,我会删除这个答案。 不是你做不到,而是你不想做。你的服务器看到/处理信用卡参数是很糟糕的,使用像 Braintree 这样的服务的部分目的是避免这种情况。 我赞成你的方法,作为更合适的官方方法。但是这里介绍的技术绝对可以改善某些工作流程,并且在某些情况下可以成为有价值的替代方案。我相信可以像您描述的机制一样安全地执行此操作......我认为 Braintree 的更大优势在于它是一个出色的支付处理器,拥有非常好的开发人员资源。无论如何,现在有两种截然不同的方法呈现给 OP,它们应该几乎涵盖了所有可能的用例。 我建议您在建议(或使用)这种方法之前阅读 PCI DSS。这不仅仅是安全问题 - 处理信用卡号码会造成严重的合规负担。

以上是关于在不成功的 Braintree 交易期间返回参数/信用卡信息的主要内容,如果未能解决你的问题,请参考以下文章

Braintree - 为啥通过 API 或沙盒创建的 Braintree 交易需要这么长时间才能完成?

与 Braintree 的每笔交易都需要支付 nonce 吗?

Braintree 付款 - 沙盒交易的处理器拒绝(2409)错误

收到 Nonce 后如何进行 Braintree 交易?

Braintree沙盒账户不显示交易

Braintree - 使用过期信用卡创建订阅不会导致错误