PayPal checkout.js - Получить paymentID и payerID - PullRequest
0 голосов
/ 04 июля 2018

Я использую PayPal Express Chechkout на своем сайте для разовых платежей. Все работает нормально, за исключением того, что я не могу получить paymentID и payerID от PayPal. Мне нужны эти переменные для внесения изменений в мою базу данных, если транзакция прошла успешно.

В настоящее время я использую следующий код. Транзакции в Sandbox и Live Modus работают нормально, а также перенаправление после успешной оплаты. Моя проблема в том, что я не могу получить paymentID и payerID.

<script src='https://www.paypalobjects.com/api/checkout.js'></script>

<div id='paypal-button'></div>

<script>\n";
paypal.Button.render({
// Configure environment
print "env: 'sandbox',
client: {
    sandbox: 'SANDBOX-KEY',
    production: 'PRODUCTION-KEY'
},
// Customize button (optional)\n";
locale: 'de_DE',
style: {
    size: 'small',
    color: 'gold',
    shape: 'pill',
},
// Set up a payment
payment: function (data, actions) {
    return actions.payment.create({
        transactions: [{
            amount: {
                total: '".$price."',
                currency: 'EUR'
            }
        }]
    });
},
// Execute the payment:
// 1. Add an onAuthorize callback
onAuthorize: function(data, actions) {
    return actions.payment.execute({ paymentID: data.paymentID, payerID: data.payerID })
    then(function(res) { window.location.replace ('MY-URL/index.php?func=billing&pp_success=1&paymentID=$paymentID') })
    catch(function(err) { window.location.replace ('MY-URL/index.php?func=billing&pp_error=1') });
},
}, '#paypal-button');
</script> 

Может ли кто-нибудь сказать мне, как мне нужно изменить свой код, чтобы я получал идентификаторы paymentId и payerID из транзакции?

1 Ответ

0 голосов
/ 25 августа 2018

API PayPal Checkout

...

actions.payment.execute(): () => Promise<PaymentDetails>

Вспомогательная функция, которая вызывает API-интерфейс REST PayPal, выполняет транзакции и возвращает обещание, содержащее реквизиты платежа объект с деталями транзакции, покупателем и т. д.

...

Пример:

...
actions.payment.execute({ ... })
  .then(function(res) { ... res.id /* $paymentID */ ... }) ...
...
...