显示在获取付款详细信息时不刷新消息/页面PayPal Checkout按钮

显示在获取付款详细信息时不刷新消息/页面PayPal Checkout按钮,paypal,express-checkout,paypal-buttons,Paypal,Express Checkout,Paypal Buttons,我正在将paypal express checkout与v2 php checkout sdk集成。我能够完成交易并将用户重定向到感谢页面并将详细信息保存到db,但当用户通过paypal安全窗口付款并关闭时,paypal会处理付款并提取我的getorder函数,此时存在明显延迟,用户坐在签出页面上,没有指示发生了什么,几秒钟后,页面刷新,用户被重定向到thankyou页面以获得支付成功 现在我的问题是,我应该如何向用户显示一条消息,以便在获取付款详细信息时不刷新页面或关闭窗口。 或者,我是否可以

我正在将paypal express checkout与v2 php checkout sdk集成。我能够完成交易并将用户重定向到感谢页面并将详细信息保存到db,但当用户通过paypal安全窗口付款并关闭时,paypal会处理付款并提取我的getorder函数,此时存在明显延迟,用户坐在签出页面上,没有指示发生了什么,几秒钟后,页面刷新,用户被重定向到thankyou页面以获得支付成功

现在我的问题是,我应该如何向用户显示一条消息,以便在获取付款详细信息时不刷新页面或关闭窗口。 或者,我是否可以将用户发送到另一个页面,该页面告诉用户在点击paypal按钮后等待,然后再进行处理

谢谢

我的贝宝按钮代码:

paypal.Buttons({
        createOrder: function() {
            let formData = new FormData();
            formData.append('amount', document.getElementById("amount_paypal").value);
            formData.append('currency_code', document.getElementById("currency_code_paypal").value);
            formData.append('refrence_id', document.getElementById("refrence_id_paypal").value);
            formData.append('event_id', document.getElementById("event_id_paypal").value);
            formData.append('description', document.getElementById("description_paypal").value);

            return fetch('../paypal/createorder.php', {
                method: 'POST',
                body: formData
            }).then(function(response) {
                return response.json();
            }).then(function(resJson) {
                return resJson.result.id;
            });
        },
        // Wait for the payment to be authorized by the customer
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                return fetch('../paypal/getorder.php', {
                    method: 'POST',
                    headers: {
                        'content-type': 'application/json',
                    },
                    body: JSON.stringify({
                        orderID: data.orderID
                    })
                }).then(function(res) {
                    if (!res.ok)
                        throw new Error('Something Went Wrong!');
                    window.location = "../paypal/thankyou.php";
                });
            });
        },
        experience: {
            input_fields: {
                no_shipping: 1
            },
        },
    }).render('#paypal-button-container');

理想的解决方案是进行服务器端集成

这样,买家在@paypal处批准付款,然后在您的网站上单击最后一个“立即付款”/“下订单”按钮,调用您的服务器,然后调用paypal执行/捕获交易,您的服务器立即记录完成的交易,然后进行响应,以便您的页面向完成交易的客户显示感谢信息

这样,就不可能在服务器不知道的情况下完成事务,而客户不看到感谢消息的情况下完成事务