首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MERN app支付成功后如何路由到下一页?

MERN app支付成功后如何路由到下一页?
EN

Stack Overflow用户
提问于 2020-10-26 19:07:16
回答 2查看 216关注 0票数 0

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

后端代码-用于检查校验和和事务。

代码语言:javascript
复制
    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函数进行支付

代码语言:javascript
复制
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) {
            
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2020-10-26 19:14:20

您可以使用react-router-dom

代码语言:javascript
复制
import {useHistory} from 'react-router-dom'


const history = useHistory()


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

两个history.replace中的任何一个都应该有效:

代码语言:javascript
复制
history.replace('yourNextPage', {details:detail})

编辑

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

如果您不想传递任何状态

这就足够了

代码语言:javascript
复制
history.push('yourNextPage')
票数 0
EN

Stack Overflow用户

发布于 2020-11-18 19:45:10

有关node.js中的校验和,请参考以下存储库中提供的代码。

https://github.com/paytm/Paytm_Node_Checksum

你也可以参考下面的react存储库(前端)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64535920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档