如何在成功的贝宝付款上发布表格?

Posted

技术标签:

【中文标题】如何在成功的贝宝付款上发布表格?【英文标题】:How to post form on successful paypal payment? 【发布时间】:2021-09-09 10:48:38 【问题描述】:

我的 html 页面上有一个表单,其中包含 paypal 按钮和 paypal 信用卡按钮。 这是一个简单的 HTML、JS 网站,而不是网上商店。成功付款后如何以编程方式发布表格?我的 onApprove 部分在下面不起作用。 *目前只设置了 paypal 沙盒帐户。

paypal.Buttons(
            style: 
                layout: 'vertical',
                color: 'black',
                shape: 'rect',
                label: 'paypal',
                height: 45
            ,
            createOrder: function (data, actions) 
                // This function sets up the details of the transaction, including the amount and line item details.
                return actions.order.create(
                    purchase_units: [
                        amount: 
                            value: total
                        
                    ]
                );
            ,
            onApprove: function (data, actions) 
                // This function captures the funds from the transaction.
                return actions.order.capture().then(function (details) 
                    // This function shows a transaction success message to your buyer.
                    $('#orderForm').submit();
                );
            
            //fundingSource: paypal.FUNDING.PAYPAL
        ).render('#paypal-button-container');

【问题讨论】:

【参考方案1】:

在客户端actions.order.capture() 之后,您不应发布表单或写入数据库或任何此类性质的东西。客户端集成不适用于该用例。如果您需要在服务器上发送或存储数据作为 PayPal 交易的一部分,您应该使用服务器端集成:


在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id,PayPal 交易 ID)

将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

如果需要向服务器传输数据,在fetch中添加请求体;不要使用表单帖子。

【讨论】:

以上是关于如何在成功的贝宝付款上发布表格?的主要内容,如果未能解决你的问题,请参考以下文章

定期付款到已经运行的贝宝脚本

网站上的贝宝付款处理[关闭]

如何在 Android 上向用户付款

使用直接付款的贝宝链式付款[关闭]

数据库中的贝宝付款商店详细信息

使用信用卡和借记卡的贝宝付款