【发布时间】:2020-07-21 01:41:20
【问题描述】:
我有一个网站,我在其中使用 PayPal 智能按钮。在沙盒环境中对其进行测试时效果很好,但是当我将客户端 ID 从沙盒一更改为实时客户端 ID 时,付款将无法通过.
PayPal 按钮仍然呈现,它仍然会将您带到结帐窗口,并且仍然允许您付款,但是当您单击付款按钮时,窗口会关闭,并且买家会收到一封电子邮件,说 PayPal 发现了与付款相关的一些风险支付?单击 PayPal 按钮,在 JavaScript 控制台日志中我收到此错误 3 次:
Blocked a frame with origin "https://www.mobilemastersshop.com" from accessing a frame with origin "https://www.paypal.com". Protocols, domains, and ports must match.
这就是它不起作用的原因吗?如果是,我该如何解决?我使用的是 Let's Encrypt 的 SSL 证书,因此 URL 是安全的,但我是否需要更改 .htaccess 文件中的任何内容才能使 PayPal 正常工作?
评论后
我认为问题在于这部分没有:
但我不知道在哪里包含这些变量。我的 PayPal 按钮渲染代码是:
<script>
paypal.Buttons({
createOrder: function(data, actions) {
// This function sets up the details of the transaction, including the amount and line item details.
return actions.order.create({
"purchase_units": [{
"amount": {
"value": applyDiscount(),
"currency_code": "USD",
"breakdown": {
"item_total": {
"currency_code": "USD",
"value": applyDiscount()
},
},
},
"items": PayPalItems()
}
]
});
},
onApprove: function(data, actions) {
// This function captures the funds from the transaction.
return actions.order.capture().then(function(details) {
// This function shows a transaction success message to your buyer.
alert('Transaction completed by ' + details.payer.name.given_name);
window.location.href = "orderConfirmed.php";
clearCart()
});
}
}).render('#paypal-button-container');
//This function displays Smart Payment Buttons on your web page.
</script>
我猜想 vars 必须进入这个脚本,所以我的 Live Client ID 脚本看起来像这样:
<script src="https://www.paypal.com/sdk/js?client-id=AU25a1zm8IuMS_HHl-90AUaHjQBdA-TnzsaSkF2do60t7VS8IukeuBhUY552W1pY_CE0QIY2h9i5p1cK">
// Add your client ID and secret
let PAYPAL_CLIENT = 'AU25a1zm8IuMS_HHl-90AUaHjQBdA-TnzsaSkF2do60t7VS8IukeuBhUY552W1pY_CE0QIY2h9i5p1cK';
let PAYPAL_SECRET = 'EIwsaGfAw7tiNBJBBb7jVWxrH6fqSLJ0fg-oNAJ-pQc37nM0ndSwqN6L0tRIvrNv9y5l2rXJdw914NUE';
// Point your server to the PayPal API
let PAYPAL_ORDER_API = 'https://api.paypal.com/v2/checkout/orders/';
</script>
【问题讨论】:
-
不测试就猜不出哪里出了问题,mobilemastersshop.com 不显示任何东西
-
我现在上传文件
-
好吧,我没有看到任何关于您引用的错误的信息。使用拒绝的真实帐户进行测试时,控制台错误为“错误:无法捕获订单”,并且没有向用户发送消息,因此您还需要改进。
-
我没有看到你所指的这个错误,我会更新这个问题以提供更多信息
-
@PrestonPHX 我已经进行了编辑
标签: javascript paypal