【问题标题】:How would you normally implement react paypal with a backend您通常如何使用后端实现 react paypal
【发布时间】:2021-11-24 03:19:32
【问题描述】:

这就是我被告知在我的电子商务网站上使用 paypal react 集成的方式,尽管我不确定它是否是最好的(我稍后会告诉你为什么)

useEffect(() =>{

    window.paypal.Buttons({

        createOrder: (data, actions, err) => {

            return actions.order.create({
                intent: "CAPTURE",
                purchase_units: [

                    {
                        description: 'book',
                        amount:{
                            currency_code: 'USD',
                            value: 100
                        }
                    }
                ]
            })
        },

        onApprove: async (data, action) =>{
            
            completeOrder()

        },

        onError: err => console.log(err.message)

    }).render(buttonsDiv.current)

    // console.log(window.paypal)

}, [])

completeOrder() 函数的目的是在将completed 标签放入订单之前向后端发送请求以验证订单

所以我遇到的问题是completeOrder() 在付款完成后运行,根据我的经验,当用户付款时可能会发生服务器停机或维护等事情,这可能导致用户无偿支付,因为订单未完成

我正在寻找的第一个解决方案是根据服务器的响应取消付款。因此,如果服务器的响应是错误的,它将取消之前的付款。但由于我缺乏知识,不知道这怎么可能

【问题讨论】:

    标签: reactjs paypal paypal-sandbox


    【解决方案1】:

    正常的解决方案是使用官方的react-paypal-js进行前端订单审批,使用Checkout-NodeJS-SDK通过API创建和捕获订单。将订单标记为已完成的服务器逻辑应在捕获路由中完成,然后将捕获结果 JSON 返回到前端审批流程。

    有关从批准 JS 调用服务器的函数演示,请参阅the server demo。您可以从您的反应代码中实现此类客户端函数(createOrder 和 onApprove),并让它们调用您需要创建的 2 个服务器路由。

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2022-06-27
      • 2012-06-11
      • 2019-05-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      相关资源
      最近更新 更多