MERN应用支付成功后如何跳转到下一页?

Posted

技术标签:

【中文标题】MERN应用支付成功后如何跳转到下一页?【英文标题】:How to route to next page after successful payment in MERN app? 【发布时间】:2021-02-08 15:20:00 【问题描述】:

我正在使用 Paytm 支付网关进行交易。我的前端在 reactjs 中,后端在 nodejs 和 expressjs 中。我希望在付款成功后重定向下一页。

后端代码- 用于检查校验和和交易。

    PaytmChecksum.generateSignature(JSON.stringify(paytmParams.body), paytmconfig.merchantkey).then(function(checksum)
        paytmParams.head = 

            "signature" : checksum
        ;
        var post_data = JSON.stringify(paytmParams);
        var options = 
            /* for Staging */
            hostname: 'securegw-stage.paytm.in',
            /* for Production */
            // hostname: 'securegw.paytm.in',
            port: 443,
            path: '/v3/order/status',
            method: 'POST',
            headers: 
                'Content-Type': 'application/json',
                'Content-Length': post_data.length
            
        ;
        // Set up the request
        var response = "";
        var post_req = https.request(options, function(post_res) 
            post_res.on('data', function (chunk) 
                response += chunk;
            );

            post_res.on('end', function()
                console.log('Response: ', response);
                res.write(response)
            );
        );
        // post the data
        post_req.write(post_data);
        post_req.end();
    );

前端代码: 将调用 onPayment 函数进行付款

onPayment= async(e)=>
        e.preventDefault();
        try 
            var amount="1.00";
            var mobile_number="+919999999999";
            var email="abcd@gmail.com";
            var orderId="ORDER_ID"+(new Date().getTime());
            let params=
                orderId:orderId,
                email:email,
                amount:amount,
                mobile_number:mobile_number
            
            var url="http://localhost:4000/payment/paynow";
            var request=
                url:url,
                params:params,
                method:"get"
            

            const response = await Axios(request);
            const processParams=await response.data;
            console.log(processParams);

            var details=
                action : "https://securegw-stage.paytm.in/order/process",
                // params : params
                params : processParams
            

            this.post(details);

         catch (error) 
            
        
    

【问题讨论】:

【参考方案1】:

您可以使用react-router-dom

import useHistory from 'react-router-dom'


const history = useHistory()


history.push('yourNextPage', details:detail)

任何一个 history.replace 都应该可以工作:

history.replace('yourNextPage', details:detail)

编辑

details:detail 是为了以防您想将上一页的状态传递给下一页

如果你不想通过任何状态

这就够了

history.push('yourNextPage')

【讨论】:

【参考方案2】:

请参考以下存储库中可用的代码以获取 node.js 中的校验和。

https://github.com/paytm/Paytm_Node_Checksum

你也可以参考下面的 React 仓库(前端)

https://github.com/paytm/paytm-blink-checkout-react

【讨论】:

以上是关于MERN应用支付成功后如何跳转到下一页?的主要内容,如果未能解决你的问题,请参考以下文章

layui中上一页,下一页,跳转到第几页,确定如何变为英文?

如何跳转到 PrintDocument 的下一页?

Scrapy/Selenium 两次跳转到下一页,然后中断(元素不可点击)。此外,除了第一页外,没有提取任何数据

用js实现两个按钮效果,上一页 下一页,点上一页按钮页面跳转到上一页,点下一页按钮页面跳转到下一页。

Laravel 提交按钮不跳转到下一页和上一页

wordpress 如何在子页面中导航上一页和下一页