Ограничения на стороне сервера PayPal для заказов товаров / изделий? - PullRequest
0 голосов
/ 03 мая 2019
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 заказов и не могу найти ничего похожего для реализации этого. Нет ли способа проверить приобретаемый продукт, не опасаясь подделки его со стороны клиента?

...