拥有带有 CB 和 PayPal 的 Braintree 自定义表单

Posted

技术标签:

【中文标题】拥有带有 CB 和 PayPal 的 Braintree 自定义表单【英文标题】:Having a Braintree custom form with CB and PayPal 【发布时间】:2014-12-30 08:33:41 【问题描述】:

我们不想使用 Braintree 的 dropin 表单来坚持我们的 UI。 到目前为止,我们只有 CC 字段的付款表单运行良好。我们正在设置braintree.js:

braintree.setup(token, "custom", 
  id: "options"
);

然后是 PayPal,我们将 PayPal 容器添加到设置中:

braintree.setup(token, "custom", 
  id: "options",
  paypal: 
    container: "paypal-button"
  
);

直到上周六,一切都在本地工作。通过挖掘,我发现在填写 CC 字段时,payment_method_nonce 不再发送到服务器:

虽然 nonce 输入出现在我的表单中的客户端!!!

那么这里是怎么回事? Braintree.js 是否以某种方式与表单提交进行交互?为什么这个 payment_method_nonce 有时会在服务器端被检索到(通过 PayPal 支付时),而有时却不是(通过 CC 支付时)?

谢谢

【问题讨论】:

我在布伦特里工作。你还有这个问题吗?这可能与我们最近修复的问题有关。如果您仍然拥有它,最好的选择是contact our support team。 问题已修复;顺便说一句,我已经联系了您的支持。我首先在这里发布了我的问题,因为通常可以安全地假设您的代码是问题,而不是 Braintree 的;) 【参考方案1】:

你快到了。当您使用带有额外 PayPal 按钮的自己的信用卡表单时,您需要使用“自定义”作为集成方法:

braintree.setup(token, "custom", 
  id: "options",
  paypal: 
    container: "paypal-button"
  
);

【讨论】:

嗨@mrak,对于我的第二个代码区域中的拼写错误,我很抱歉,但我在使用您提到的“自定义”时遇到了这个问题。所以错误不是来自这个。 你是怎么想出来的?我在任何地方都找不到合适的braintree.setup 文档。是否有定义可用选项或标准 API 文档的地方?我超越了他们侮辱性简单和杂乱无章的网站上的“向导”演练。【参考方案2】:

好吧,问题出在 Braintree 这边。

将https://js.braintreegateway.com/v2/braintree.js 与大于2.2.4 的braintree.js 版本一起使用可以解决问题。

【讨论】:

以上是关于拥有带有 CB 和 PayPal 的 Braintree 自定义表单的主要内容,如果未能解决你的问题,请参考以下文章

Paypal:通过 Express Checkout 定期付款,无需用户拥有 paypal 帐户

将 PayPal 与 Android 应用程序集成,无需用户拥有 PayPal 帐户

带有运费和错误的 Paypal Express 结帐

带有 IPN 的 PayPal 用户输入表单

带有验证和 Paypal 的 PHP 联系表

带有更多非定期参考交易的 PayPal 账单协议