繁体   English   中英

贝恩树(Braintree)中的PayPal作为辅助付款选项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM