Braintree 集成,在 JS 应用程序中

Braintree integration, within JS application

我正在将 braintree 与我们的支付页面集成,并决定使用 "drop-in"。但是,当我尝试加载该页面时,我可以看到正在对 braintree 沙箱网站进行网络调用,但是插入 UI 不会加载。控制台也没有错误。

这是我的代码 -

function invokeBraintree(clientToken, amount){
        var el = angular.element( "<form id='btform'><div id='bt-dropin'></div></form>" );
        $document.find("body").append( el );
        var options = {
            onPaymentMethodReceived: function(payload) {
                console.log(payload); // yay
            },
            container: 'bt-dropin',
            enableCORS: true
        }

        braintreeWeb.setup(clientToken, 'dropin', options)
    }

感谢任何帮助。

编辑

我观察到的一件事是,正在对 https://api.sandbox.braintreegateway.com/merchants/zn7trnkh3vqfp59n/client_api/v1/payment_methods 进行调用,响应低于 return。

/**/callback_jsonfbd58acc926e4afeb6fc4809d4369a99({"paymentMethods":[],"status":200}) 

不确定为什么 return 的付款方式是空的,我怀疑这就是问题所在。

我看到的一个问题是您没有在 onPaymentMethodReceived 函数中更新您的视图,只需尝试以下操作:

var options = {
    onPaymentMethodReceived = function(payload){
        $scope.$apply(function(){
            console.log(payload);
        });
    },
    ...
}

显然这是我的 Braintree 帐户的问题。我有一个沙盒帐户,默认情况下沙盒帐户中未启用 PayPal。您也无法手动完成。

我联系了 Braintree 支持,他们为我启用了它。然后一切开始工作。