Реализация PayPal в моем приложении Laravel 5.8
Глядя на фрагмент кода:
https://developer.paypal.com/docs/archive/checkout/integrate/?mark=get%20the%20code#set-up-your-development-environment
Я не вижу, который возвращает правильный формат?
здесь https://developer.paypal.com/docs/integration/direct/payments/paypal-payments/#create-paypal-payment
Я обнаружил, что нужно использовать redirect_urls, поэтому мое определение кнопки:
<script>
paypal.Button.render({
// Configure environment
env: 'sandbox',
client: {
sandbox: 'CLIENTID',
production: 'demo_production_client_id'
},
// Customize button (optional)
locale: 'en_US',
style: {
size: 'small',
color: 'blue',
shape: 'pill',
},
commit: true,
payment: function(data, actions) {
return actions.payment.create({
"note_to_payer": "Contact us for any questions on your order.",
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
redirect_urls : { //redirect_urls
return_url : 'https://www.votes.nilov-sergey-demo-apps.tk/paypal_payment',
cancel_url : 'https://www.votes.nilov-sergey-demo-apps.tk/paypal_payment_cancel'
},
transactions: [{
amount: {
total: '0.01',
currency: 'USD'
}
}]
});
},
// Execute the payment
onAuthorize: function(data, actions) {
console.log("onAuthorize data::")
console.log( data )
console.log("onAuthorize actions::")
console.log( actions )
return actions.payment.execute().then(function() {
// Show a confirmation message to the buyer
window.alert('Thank you for your purchase! 0');
});
}
}, '#paypal-button');
</script>
Я вижу предупреждение в методе actions.payment.execute, но автоматического возврата по URL, указанному в return_url, как я и ожидал, не происходит.
Я загрузил свой сайт в прямом эфире на https://www.votes.nilov -sergey-demo-apps.tk под LAMP, Ubuntu 18, Digital Ocean.
Почему нет автоматического перенаправления?
$ php artisan --version
Laravel Framework 5.8.24
In composer.json:
"paypal/rest-api-sdk-php": "*",
ИЗМЕНЕНО:
Я переделал способ, когда платежная переменная создала и вернула:
payment: function(data, actions) {
var payment = actions.payment.create({
"note_to_payer": "Contact us for any questions on your order.",
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
redirect_urls : { //redirect_urls
return_url : 'https://www.votes.nilov-sergey-demo-apps.tk/paypal_payment',
cancel_url : 'https://www.votes.nilov-sergey-demo-apps.tk/paypal_payment_cancel'
},
transactions: [{
amount: {
total: '0.01',
currency: 'USD'
}
}]
});
console.log("payment payment::")
console.log(payment);
// alert( "::"+var_dump(-88) )
return payment;
},
и отмеченные предупреждения:
Firefox can’t establish a connection to the server at wss://www.votes.nilov-sergey-demo-apps.tk/app/123?protocol=7&client=js&version=4.3.1&flash=false. app.js:1767:16
The connection to wss://www.votes.nilov-sergey-demo-apps.tk/app/123?protocol=7&client=js&version=4.3.1&flash=false was interrupted while the page was loading.
экран печати с выводом на консоль платежа и сообщениями об ошибках выглядит следующим образом:
https://imgur.com/a/znKtMGw
Что вызвало эти ошибки?