nodejs 支付(未完)

本文介绍了一种使用微信支付统一下单接口的方法。包括后台生成统一订单、签名及发送请求的过程,以及前台如何利用返回的数据调用微信JSBridge完成支付。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:后台

生成统一订单

var _contentStr = fnCreateUrlParam(data);
_contentStr += "&key=" + "dkehruteirjfdiheriyterjkjdfdferk";
    console.log('xml:')
    //console.log(_contentStr)
var md5 = crypto.createHash('md5');
var sign = md5.update(_contentStr, 'utf-8').digest('hex').toString().toUpperCase();
    data.sign=sign;
    console.log("生成的订单data:")
    console.log(data)
    delete data.key;
    var _xmlData = fnCreateXml(data);

    var _sendData = "<xml version='1.0' encoding='UTF-8'>" + _xmlData + "</xml>"; //_xmlTemplate.replace(/{content}/)

    //console.log(_sendData);
        var url = "https://api.mch.weixin.qq.com/pay/unifiedorder";

    var opt = {
        host: "api.mch.weixin.qq.com",
        port: '443',
        method: 'POST',
        path: "/pay/unifiedorder"
    };
    var body = '';
    opt.agent = new https.Agent(opt);
    var req = https.request(opt, function(res) {
        res.setEncoding('utf8');
        //console.log("Got response: " + res.statusCode);
        res.on('data',function(d){
            body += d;
        }).on('end', function(){
            //console.log(res.headers);

            console.log('微信返回消息');
            //console.log(body);
            var ret = fnParseReceivedXML(body);
            //如果回调存在就执行回调函数
            //if(typeof callback == 'function'){
                //console.log(body);
                _callback(body,next);
            //}
        });
    }).on('error', function(e) {
        console.log("Got error: " + e.message);
    });
前台

var data={
                        "appId":ret.data.appId,     //公众号名称,由商户传入
                        "timeStamp":ret.data.timeStamp.toString(),         //时间戳,自1970年以来的秒数
                        "nonceStr":ret.data.nonceStr, //随机串
                        "package":ret.data.package,
                        "signType":ret.data.signType,         //微信签名方式:
                        "paySign":ret.data.sign,//wxInfo.signature,////wxInfo.signature //微信签名
                        //"trade_type":ret.data.trade_type
                    };
                    alert(JSON.stringify(data));
                    WeixinJSBridge.invoke(
                        'getBrandWCPayRequest',data ,
                        function(res){
                            alert(JSON.stringify(res));
                            if(res.err_msg == "get_brand_wcpay_request:ok" ) {}     // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。
                        }
                    );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值