paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
intent : "CAPTURE",
purchase_units: [{
description : 'Product 1',
amount: {
value: '10.01'
}
}],
application_context : {
brand_name : 'my brand',
user_action : 'PAY_NOW'
}
});
},
onApprove: function(data, actions) {
// ajax to server
}
}).render('#paypal-button-container');
Это единственный клиентский скрипт в сочетании с библиотекой https://www.paypal.com/sdk/js?client-id=SB_CLIENT_ID
для рендеринга кнопки.
Все это следует руководству API для оформления заказа здесь: https://developer.paypal.com/docs/checkout/integrate/
Моя проблема в том, что эта часть на стороне клиента легко модифицируется клиентом. Поэтому я планировал отправить подтверждение серверу, а затем обработать его, чтобы проверить, законно ли оно, прежде чем «захватить» транзакцию.
Проблема в том, что отправленное на сервер onApprove не имеет ничего, например «продукт», который можно привязать к чему-либо в бизнес-аккаунте Paypal. Я просмотрел всю документацию по API заказов и не могу найти ничего похожего для реализации этого. Нет ли способа проверить приобретаемый продукт, не опасаясь подделки его со стороны клиента?