Я пытаюсь интегрировать Paypal Express Checkout в простую корзину покупок. Существуют разные способы сделать это. Paypal рекомендует выбирать между базовой или расширенной интеграцией и версией 4.0 checkout.js (с REST API). Все идет нормально. Я создал приложение Paypal в своей учетной записи Paypal, чтобы получить учетные данные и начать тестирование. Тест был в порядке, но здесь есть некоторые недоразумения. Checkout.js отправляет сумму (1.00) и валюту (EUR) на серверы Paypal через REST API (вместе с моими учетными данными). И если платеж завершен OK - активируется функция обратного вызова onAuthorize и есть два параметра с ответом (данные и действия). Ну, здесь я вызываю свою собственную функцию AJAX для записи данных ответа на транзакцию в моей базе данных. НО ... Я получаю здесь только PaymentID и PayerID оплачиваемой транзакции? !! И если я хочу искать позже в веб-интерфейсе paypal.com - нет такой вещи, как PaymentID. Существует только TransactionID ??? Как получить информацию о других транзакциях в ответе в функции обратного вызова onAutorize? Как я могу получить TransactionID здесь для записи в моей базе данных? Может быть здесь я должен позвонить в Paypal API или выполнить IPN Paypal (уведомление о мгновенном платеже)? НО как позвонить IPN API, если у меня нет TransactionID :)Застрял с интеграцией Paypal Express Checkout (базовая интеграция checkout.js версии 4.0.0)
<div style="width: 906px; text-align: right; height: 100px;
margin-top: 50px;">
<div id="paypal-button"></div>
</div>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script>
paypal.Button.render({
env: 'production', // Optional: specify 'sandbox' environment
style: {
size: 'medium',
shape: 'rect'
},
client: {
sandbox: 'xxx-my-credentials-xxx',
production: 'xxx-my-credentials-xxx'
},
payment: function() {
var env = this.props.env;
var client = this.props.client;
return paypal.rest.payment.create(env, client, {
transactions: [
{
amount: { total: '1.00', currency: 'EUR' }
}
]
});
},
commit: true, // Optional: show a 'Pay Now' button in the checkout flow
onAuthorize: function(data, actions) {
// Optional: display a confirmation page here
var EXECUTE_PAYMENT_URL = 'payment-process.php';
paypal.request.post(EXECUTE_PAYMENT_URL, { paymentID: data.paymentID, payerID: data.payerID, transactionID: data.transactionID, data: data }) .then(function(data) { }) .catch(function(err) { });
return actions.payment.execute().then(function() {
// Show a success page to the buyer
});
}
}, '#paypal-button');
</script>
Но есть данные. id идентификатор транзакции или платежа? Я обнаружил, что они отличаются друг от друга. –
data.id - идентификатор транзакции. – Imran