【Vue+Node 微信支付前后端流程整理】以上是整个分享、支付流程,关于支付核心,下面我单独列出 。
支付核心流程
- 生成随机数
createNonceStr(){ return Math.random().toString(36).substr(2,15);} - 生成时间戳
createTimeStamp(){ return parseInt(new Date().getTime() / 1000) + ''} - 生成预支付的签名
getPrePaySign: function (appid, attach, body, openid, total_fee, notify_url, ip, nonce_str, out_trade_no) { let params = { appid, attach, body, mch_id: config.mch_id, nonce_str, notify_url, openid, out_trade_no, spbill_create_ip: ip, total_fee, trade_type: 'JSAPI' } let string = util.raw(params) + '&key=' + config.key; let sign = createHash('md5').update(string).digest('hex'); return sign.toUpperCase(); } - 拼接xml下单数据
wxSendData: function (appid, attach, body, openid, total_fee, notify_url, ip, nonce_str, out_trade_no,sign) { let data = '<xml>' + '<appid><![CDATA[' + appid + ']]></appid>' + '<attach><![CDATA[' + attach + ']]></attach>' + '<body><![CDATA[' + body + ']]></body>' + '<mch_id><![CDATA[' + config.mch_id + ']]></mch_id>' + '<nonce_str><![CDATA[' + nonce_str + ']]></nonce_str>' + '<notify_url><![CDATA[' + notify_url + ']]></notify_url>' + '<openid><![CDATA[' + openid + ']]></openid>' + '<out_trade_no><![CDATA[' + out_trade_no + ']]></out_trade_no>' + '<spbill_create_ip><![CDATA[' + ip + ']]></spbill_create_ip>' + '<total_fee><![CDATA[' + total_fee + ']]></total_fee>' + '<trade_type><![CDATA[JSAPI]]></trade_type>' + '<sign><![CDATA['+sign+']]></sign>' + '</xml>' return data;} - 调用微信统一下单接口
https://api.mch.weixin.qq.com/pay/unifiedorder
let url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; request({ url, method: 'POST', body: sendData }, function (err, response, body) { if (!err && response.statusCode == 200) { xml.parseString(body.toString('utf-8'),(error,res)=>{ if(!error){ let data = res.xml; if (data.return_code[0] == 'SUCCESS' && data.result_code[0] == 'SUCCESS'){ // 获取预支付的ID let prepay_id = data.prepay_id || []; // 此处非常重要,生成前端所需要的支付配置 let payResult = self.getPayParams(appid, prepay_id[0]); resolve(payResult); } } }) } else { resolve(util.handleFail(err)); } })
推荐阅读
-
重庆晨报|7日、8日重庆机场单日旅客吞吐量有望突破14万人次
-
「发现」中石油发布重大勘探成果 我国又发现10亿吨级大油田!
-
【天极网】大公司晨读:比尔盖茨称美国感染人数月底到峰值;美国或升级对华为的限制措施
-
-
-
-
-
-
躺鸡萌妹|还可以联动,我的世界:更好的下界!骨礁和蘑菇森林充斥整个世界
-
迈克尔·乔丹▲NBA史上能单核夺冠的球员都是谁?乔丹、詹姆斯、科比都未做到
-
燃财经:两代网红殊途同归,罗永浩卖艺还债VS董明珠打脸求生
-
中国新闻网|海南重点行业和场所进入"禁塑"试点实施阶段
-
36氪|【斗鱼和虎牙分别组建特别委员会,研究腾讯的合并议案】
-
智能手机|手机关机掉在田里苦寻无果 警犬52秒找回:眼神很得意
-
不明地址的候鸟南来北往|外媒:咋又是中国?,150亿收益!中巴再次展现深厚友谊
-
呼和浩特牛街美食排行榜?呼和浩特最繁华的步行街和商业街?
-
影音极品 Telos 590 Nextgen II 立体声合并式放大器,Goldmund
-
互联网圈里人■湖北商户再减免1个月佣金,美团“扶持复工行动”升级
-
山东体育资讯国足40强赛李铁再添强援,昨夜19点!中超百球先生宣告王者归来
-
月亮湾湾:像是路边素人,38岁马苏多真实?失去美颜滤镜