PayPal按钮无法在https上工作
我的PayPal按钮(实际上是快速结帐)在https上不起作用,当我通过https访问我的应用时,我意识到了这一点。PayPal按钮无法在https上工作
不确定这是我的https阻止此脚本。
<script src="https://www.paypalobjects.com/api/checkout.js" data-version-4></script>
我没有问题看到该按钮被加载到本地主机(开发环境)。但在生产中以https,我得到这个错误
ppxo_xc_ppbutton_error Object
Error: Document is ready and element #paypal-button does not exist
我使用的角度,这个代码块是我的控制器内
paypal.Button.render({
env: 'production', // Optional: specify 'sandbox' environment
payment: function() {
var env = this.props.env;
var client = this.props.client;
return paypal.rest.payment.create(env, client, {
transactions: [{
amount: { total: 5 , currency: 'USD' },
item_list: {
items: [{
"name": "profile",
"price": "5",
"currency": "USD"
}]
}
}],
redirect_urls: {
"return_url": $location.absUrl(),
"cancel_url": $location.absUrl()
}
});
},
commit: true, // Optional: show a 'Pay Now' button in the checkout flow
onAuthorize: function(data, actions) {
return actions.payment.execute().then(function() {
actions.payment.get().then(function(data){
if(data.state === 'approved'){
$http.post('/paid',{qty:$scope.number_of_uses,user_email:user_email})
.then(function(response){
$scope.done = true;
});
}
});
});
}
}, '#paypal-button');
我再说一遍,它的工作在本地主机罚款,但不是在HTTPS (生产)。
按钮实际上是设置了一个角分量为您提供:
https://github.com/paypal/paypal-checkout/blob/master/docs/frameworks.md#angularjs-element
可能是明智的使用。我怀疑,如果你尝试直接在角度控制器中渲染,它可能还没有渲染容器元素,因此你的错误。
那么为什么它在http中工作? –
不知道,除非你可以提供一个你正在使用的角码的例子,也许我可以尝试一个演示页面。 – bluepnume
我在角模板完成渲染之前发现了脚本加载。我使用Chrome的网络工具进行调试,我使用较慢的连接。我把暂停的贝宝功能,现在它的工作。 –
请提供[mcve]。 –
元素'#paypal-button'不存在 – MackieeE
@MackieeE不,它的确如此。它只是不工作在https中,它运行良好,当我在发展URL是http:// localhost:3000 –