【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)); } })
推荐阅读
-
影客网络科技|Radeon RX 6000显卡来了,谁还在意英伟达的缺货?,AMD
-
时尚品味|贝嫂为了时尚太拼,上衣仅是一层薄纱,看到高跟鞋又让人不淡定了
-
中国|“天花板级”高手齐聚,《技惊四座》展现中国顶尖杂技魅力
-
TVB|明道牵妻儿手逛街,牛仔裤配凉拖尽显朴素,妻子挺孕肚背包不娇气
-
NVIDIA|RTX 3070 Ti显存可选8/16GB GDDR6X:反超RTX 3080 Ti
-
过完年不想外出打工,试试在家种它,种成功了,亩赚万元不是梦
-
明明长得不好看,却能红得“一塌糊涂”,这5位女明星凭什么?
-
念洲聊球|皇马告别门德斯时代:13年4.84亿欧交易!C罗穆里尼奥领衔
-
-
-
-
|做到以下6个男人该有的品质,能让同事觉得你很成大事
-
运势|九月上旬开始,4属相好运不断,惊喜多多,生活幸福美满
-
-
[虎皮兰]原来这植物爱受虐,砍一刀就能突突冒芽,长势超旺!
-
第一财经|刘刚:市场进入投机性阶段 谨慎短期振幅加大
-
鼠标|华为多款键鼠发布:无线充电鼠标16000 DPI、续航350小时
-
面试技巧|“中铁三局”是什么梗?招个端茶递水的文员,都得要身材好的美女
-
没车没房,女朋友父母坚决反对她女儿和我交往,我该咋办
-
“阔腿裤+靴子”成今冬潮款搭配,高级显气质,不挑身材与年龄