[英]PayPal as secondary payment option in Braintree
目前,我们正与Braintree PayPal付款以及通过IBAN进行常规银行转帐相结合。 基本上,我们向访问者提供两个订阅选项:PayPal(通过Braintree)和IBAN交易。
PayPal方法工作正常,但是当我们不选择PayPal而是IBAN银行转帐时,出现以下控制台错误:
我们了解这是正确的行为,因为未填写PayPal字段, 但是如何将PayPal作为可选的付款方式,而在未填写字段时不会引发错误呢?
我们通过DropUI使用基本的js实现。
<div class="bt-drop-in-wrapper" id="showpaypalfields">
<div id="bt-dropin" class="paypaldiv"></div>
</div>
<script src="https://js.braintreegateway.com/js/braintree-2.27.0.min.js"></script>
<script>
var client_token = "123TOKEN";
braintree.setup(client_token, "dropin", {
container: "bt-dropin"
});
</script>
更新:这两种形式都可以在页面上立即看到,之后它们不会通过Ajax或任何形式加载。 因此,仅在例如设置了复选框的情况下,通过Braintree的PayPal选项才应验证。 例如,下面的屏幕快照中给出的复选框(切换两个字段集的可见性)。
更新#2:对于对最终解决方案感兴趣的任何人:
var btInstance;
$('input#paymentmethod-1').change(function(){
if ( $(this).is(':checked') == true ) {
teardown();
}
});
$('input#paymentmethod-2').change(function(){
if ( $(this).is(':checked') == true ) {
setup();
}
});
function setup() {
if (btInstance) {
return;
} else {
var client_token = "<ps:braintreetoken />";
braintree.setup(client_token, "dropin", {
container: "bt-dropin",
onReady: function (bt) {
btInstance = bt;
}
});
}
}
function teardown() {
if (!btInstance) {
return;
}
btInstance.teardown(function () {
btInstance = null;
});
}
全面披露:我在Braintree工作。 如果您还有其他疑问,请随时与支持小组联系。
当您选择Lastschrift付款选项时,仍会加载Drop-in UI,这就是为什么您收到验证错误的原因。
避免这些验证错误的一种方法是,如果客户选择了Lastschrift,则使用braintree.js中“ onReady”回调中的“ teardown”方法来删除Drop-in UI。
另外,您也可以在页面上将每种付款方式分别分成完全不同的表单元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.