【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)); } })
推荐阅读
-
科技行者|AI+实时监控技术提升公共服务的十种方式
-
世界上最贵最豪华的食物,美味又营养,适合所有年龄的人
-
杨紫|工作室晒杨紫日常遛狗随拍,涂鸦风好活力,想看遛piupiu的vlog
-
囧王者|魔兽世界怀旧服:野金团老板进本交押金这事儿,到底应该不应该?现阶段,老板进野金团,要不要交押金?为什么以前不用交押金,现在要交押金呢?
-
|山羊“变异”了?欧洲有一种白身黑面山羊,简直不像地球物种
-
直播吧|都发生在本轮系列赛,威少今年出手至少7次三分比赛仅2场
-
皮海洲|不妨在创业板推出“迷你型”股指期货,让投资者不做“死多头”
-
盘点斗罗中比较出名的4对双胞胎,其中三对拥有武魂融合技
-
NBA官网|字母哥:裁判吹罚没问题,巴特勒罚球绝杀
-
-
杨志|盘点《水浒传》中的9位“上上人”,李逵位列第3,花荣仅排第6
-
-
中国网财经 导流文案被指内容血腥,思美传媒旗下小说平台现疑似不良导向小说
-
隔壁张阿姨|过来人告诉你数胎动多重要,这样数胎动才正确,失去宝贝后
-
采摘|冷水滩:不负冬日“莓”好时光 草莓采摘正当时
-
-
瘦了20斤的老阿姨分享:中年女士减肥不如“减脂”,从这4点开始
-
#健康零距离#满足患者就医需求,市中医医院新开设内五肿瘤科
-
178游戏网|《魔兽世界:暗影国度》资料片成魔兽史上预售销量最高产品
-