如何获得PayPal客户端信息给Django?

qyswt5oh  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(158)

我在我的Django网络应用程序中使用PayPal标准IPN支付解决方案。

<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>

一切运行正常,我可以通过js代码中的details变量访问所有数据
现在,我需要插入细节到Django数据库,没有API,简单的模型。
尝试了很多东西,没有工作.我不喜欢使用django-paypal,因为它没有智能按钮(据我所见),只有“立即购买按钮”的选项,没有信用卡/借记卡.
它是如何做到的?或者是有django-paypal软件包的智能按钮?
谢谢你的帮助!

5lhxktic

5lhxktic1#

如何获得PayPal客户端信息给Django?
别说了
使用客户端JS函数创建和捕获付款的集成是非常简单的用例。如果您需要对结果执行任何自动化操作,例如将交易结果写入数据库,则绝对不要使用它。
使用v2/checkout/orders API并创建两个路径(url路径),一个用于“创建订单”,另一个用于“捕获订单”。您可以使用Checkout-PHP-SDK来路由对PayPal的API调用,或者您自己的HTTPS实现(首先获取访问令牌,然后执行调用)。(无HTML或文本)。在第二个途径中,当捕获API成功时,您应验证金额是否正确,并将其生成的付款详细信息存储在数据库中(特别是purchase_units[0].payments.captures[0].id,即PayPal交易ID)并执行任何必要的业务逻辑(例如预订产品或发送电子邮件)。如果出现错误,请同时转发其JSON详细信息,因为前端必须处理这种情况。
将这两个路由与此前端审批流配对:https://developer.paypal.com/demo/checkout/#/pattern/server。(如果需要从客户端向服务器发送任何其他数据,如items数组或选定的选项,请向fetch添加一个body参数,其值为JSON字符串或对象)

相关问题