javascript Django和Paypal按钮集成

lb3vh1jj  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(136)

我正在整合贝宝支付方式到我的网站,这是完美的工作....直到我试图添加一个描述,这样我就可以查看贝宝发票上的所有订单细节。
只要我添加描述(我已经添加了order_id作为我想要传递的信息的示例):{}到下面的createOrder函数,paypal加载失败:

<script>
    var total = '{{order.get_cart_total}}'
    // Render the PayPal button into #paypal-button-container
    paypal.Buttons({

        style: {
            color:  'blue',
            shape:  'rect',
        },

        // Set up the transaction
        createOrder: function(data, actions) {
            return actions.order.create({
                purchase_units: [{
                    amount: {
                        value:parseFloat(total).toFixed(2)
                    },
                    description: {
                        order_id
                    },
                }]
            });
        },

        // Finalize the transaction
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                console.log(JSON.stringify(details));
        submitFormData()
            });
        }

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

在console我得到以下错误:

我已将以下设置添加到settings.py文件中:

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = 'None'
CSRF_COOKIE_SAMESITE = 'None'
4smxwvx5

4smxwvx51#

actions.order.create(actions.order.capture(已弃用
有关如何集成从服务器创建和捕获的两个后端路由的信息,请参阅the standard checkout integration guide。示例在node.js中,但这两个路由(仅返回JSON)当然可以在任何环境中实现,包括python/django。
如果order_id是您自己唯一的订单ID(以前从未用于成功完成的付款),则通常传递此值的最佳字段是invoice_id。成功付款后,默认情况下会阻止相同invoice_id的重复/重复付款,这有助于防止意外重复付款的可能性。

相关问题