У меня есть веб-сайт, на котором я использую умные кнопки PayPal. При тестировании в среде «Песочница» он работал отлично, но когда я изменил идентификатор клиента с «песочницы» на идентификатор реального клиента, платежи не будут go through.
Кнопки 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.
. По этой причине она не работает и, если да, то как ее исправить? Я использую SSL-сертификат от Let's Encrypt, поэтому 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>
Я догадался, что в этом сценарии переменные должны иметь go, поэтому мой сценарий 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>