Как получить информацию о papypal на стороне клиента в django?

Я использую стандартное платежное решение PayPal IPN на стороне клиента в моем веб-приложении Django.

<body>
    <!-- Set up a container element for the button -->
    <div id="paypal-button-container"></div>

    <!-- Include the PayPal JavaScript SDK -->
    <script src="https://www.paypal.com/sdk/js?client-id=test&currency=USD"></script>

    <script>
        // Render the PayPal button into #paypal-button-container
        paypal.Buttons({

            // Set up the transaction
            createOrder: function(data, actions) {
                return actions.order.create({
                    purchase_units: [{
                        amount: {
                            value: '88.44'
                        }
                    }]
                });
            },

            // Finalize the transaction
            onApprove: function(data, actions) {
                return actions.order.capture().then(function(orderData) {
                    // Successful capture! For demo purposes:
                    console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));
                    
                });
            }


        }).render('#paypal-button-container');
    </script>
</body>

все работает нормально и я могу получить доступ ко всем данным через переменную details в js коде .

Теперь мне нужно вставить детали в django db, как это можно сделать? Нет api, простая модель.

Пробовал много вещей, ни одна не сработала, и я предпочитаю не использовать django-paypal.

Спасибо за помощь!

Как получить информацию о PayPal на стороне клиента в Django?

Не надо.

Интеграция, которая создает и фиксирует платежи с помощью JS-функций на стороне клиента, предназначена для очень простых случаев использования. Ее никогда не следует использовать, если вам нужно сделать что-то автоматизированное с результатом, например, записать результаты транзакции в базу данных.

Вместо этого существуют интеграции на основе API именно для этого случая использования. Используйте API v2/checkout/orders и создайте два маршрута (пути url) на вашем сервере, один для 'Create Order' и один для 'Capture Order'. Вы можете использовать Checkout-PHP-SDK для API вызовов маршрутов к PayPal, или вашу собственную реализацию HTTPS, сначала получающую токен доступа, а затем выполняющую вызов. Оба этих маршрута должны возвращать/выводить только JSON данные (без HTML или текста). Внутри второго маршрута, когда API захват успешен, вы должны убедиться, что сумма была правильной, и сохранить полученные платежные данные в вашей базе данных (в частности purchase_units[0].payments.captures[0].id, который является идентификатором транзакции PayPal) и выполнить любую необходимую бизнес-логику (например, зарезервировать продукт или отправить электронное письмо) непосредственно перед пересылкой возвращаемого JSON фронтенду. В случае ошибки также передайте детали JSON, так как фронтенд должен обрабатывать такие случаи.

Сопрягите эти 2 маршрута с этим фронтенд-потоком утверждения: https://developer.paypal.com/demo/checkout/#/pattern/server . (Если вам нужно отправить какие-либо дополнительные данные с клиента на сервер, например, массив элементов или выбранные опции, добавьте body параметр в fetch со значением, которое является строкой JSON или объектом)

Вернуться на верх