Я разрабатываю плагин WordPress, в котором я принимаю платежи через PayPal Express Checkout. Мне удалось получить PaymentID и PayerID. Но я не знаю, как подтвердить платеж. Кроме того, могу ли я получить данные плательщика по идентификатору плательщика или идентификатору платежа?
Ниже приведен сценарий, который я использовал для создания кнопки оплаты.
<script>
paypal.Button.render({
env: 'sandbox',
// PayPal Client IDs - replace with your own
// Create a PayPal app: https://developer.paypal.com/developer/applications/create
client: {
sandbox: 'AfI6d9wTxV519v5OI08omQE7HX9XI6-h3AopzKAiP5Yk2nO6brKaTJH8DyeAwpRpLI0CjGtQVSS737eS',
production: 'AfI6d9wTxV519v5OI08omQE7HX9XI6-h3AopzKAiP5Yk2nO6brKaTJH8DyeAwpRpLI0CjGtQVSS737eS'
},
// Show the buyer a 'Pay Now' button in the checkout flow
commit: true,
// payment() is called when the button is clicked
payment: function(data, actions) {
// Make a call to the REST api to create the payment
return actions.payment.create({
payment: {
transactions: [
{
amount: { total: <?php echo $_SESSION['trip-cost'];?>, currency: 'USD' },
custom: '1452'
}
]
}
});
},
validate: function(actions) {
// var fields = jQuery(".wp-travel-engine-billing-details-wrapper").find("select, input").serializeArray();
// console.info(fields);
// jQuery.each(fields, function(i, field) {
// if (!field.value)
// alert(field.name + ' is required');
// });
},
// onAuthorize() is called when the buyer approves the payment
onAuthorize: function(data, actions) {
// Make a call to the REST api to execute the payment
return actions.payment.execute().then(function() {
window.location = '<?php echo $wp_travel_engine_confirmation_page; ?>?paymentid='+data.paymentID+"&payerID = "+data.payerID+"&token = "+data.paymentToken+"&pid=1";
});
}
}, '#paypal-button-container');
</script>
Спасибо.

Мне удалось это сделать с помощью ipnlistener.