Paypal Braintree pop 在 chrome 中被阻止

Posted

技术标签:

【中文标题】Paypal Braintree pop 在 chrome 中被阻止【英文标题】:Paypal Braintree pop blocked in chrome 【发布时间】:2018-10-10 05:23:35 【问题描述】:

当从 onReady 方法调用时,Paypal Braintree 弹出窗口在 chrome 中被阻止询问权限。

下面是braintree.setup onready函数

    onReady: function(integration) 
      console.log('Braintree is ready');
      checkout = integration;
      enablePaypalBtn();
    

下面是按钮代码

    <button id="my-button-element" style="visibility:none"></button>
    var checkout;
    document.querySelector('#my-button-element').addEventListener('click', 
    function (event) 
      event.preventDefault();
      checkout.paypal.initAuthFlow();
    , false);

而如果我直接从控制台弹出窗口调用 my-button-element 单击事件,则会在未经许可的情况下显示。

【问题讨论】:

【参考方案1】:

全面披露:我在 Braintree 工作。如果您还有任何问题,请随时联系support。

根据Braintree's docs,initAuthFlow 必须作为用户点击事件的结果同步调用,否则 PayPal 流弹出窗口将被浏览器自动阻止。您需要将enablePaypalBtn() 绑定到用户点击操作。

另外,想提一下 Braintree 有一个更新的 javascript 库,v3。如果可以,我推荐migrating to the newest version。

【讨论】:

以上是关于Paypal Braintree pop 在 chrome 中被阻止的主要内容,如果未能解决你的问题,请参考以下文章

Braintree 花时间打开 PayPal

我是不是需要同时购买 Paypal 和 Braintree 帐户才能进行 Paypal 集成?

延迟 Paypal 付款 - Braintree API

用braintree生产账户接受paypal

Braintree 的沙盒 PayPal 集成(使用 JS 和 PHP)

Braintree Paypal 在沙盒中工作,但不是生产