微信小程序开发(七)小程序支付-查询订单
来源:互联网 发布:淘宝联盟下单后失效 编辑:程序博客网 时间:2024/05/21 17:03
应用场景
该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
需要调用查询接口的情况:
◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
◆ 调用支付接口后,返回系统错误或未知交易状态情况;
◆ 调用被扫支付API,返回USERPAYING的状态;
◆ 调用关单或撤销接口API之前,需确认支付状态;
接口说明
这里如果已经做好了统一下单,《微信小程序开发(五)小程序支付-统一下单》。再做查询订单就是一件很简单的事情了。
但是这里需要注意的是商户订单号-out_trade_no这个,因为我们在统一下单的时候有这个,查村订单也是根据这个区查询,后面的关闭订单,退款都可以根据这个去操作。
代码实现
/* * 根据商户订单号out_trade_no 查询订单 */router.all('/api/wxpay/orderQuery', function(req, res, next) { var param = req.query || req.params; var out_trade_no = param.out_trade_no; var nonce_str = getNonceStr(); var bodyData = '<xml>'; bodyData += '<appid>' + wxConfig.AppID + '</appid>'; bodyData += '<mch_id>' + wxConfig.Mch_id + '</mch_id>'; bodyData += '<nonce_str>' + nonce_str + '</nonce_str>'; bodyData += '<out_trade_no>' + out_trade_no + '</out_trade_no>'; var sign = orderQuerySign( wxConfig.AppID, wxConfig.Mch_id, nonce_str, out_trade_no ); bodyData += '<sign>' + sign + '</sign>'; bodyData += '</xml>'; var urlStr = 'https://api.mch.weixin.qq.com/pay/orderquery'; request({ url: urlStr, method: 'POST', body: bodyData }, function (error, response, body) { if (!error && response.statusCode == 200) { var returnValue = {}; parseString(body, function (err, result) { if (result.xml.return_code[0] == 'SUCCESS' && result.xml.result_code[0] == 'SUCCESS') { returnValue.msg = '操作成功'; returnValue.status = '100'; returnValue.result = result; res.end(JSON.stringify(returnValue)); } else{ returnValue.msg = result.xml.return_msg[0]; returnValue.status = '102'; returnValue.result = result; res.end(JSON.stringify(returnValue)); } }); } })});// 查询/关闭订单 签名算法 function orderQuerySign(appid,mch_id,nonce_str,out_trade_no) { var ret = { appid: appid, mch_id: mch_id, nonce_str: nonce_str, out_trade_no: out_trade_no }; var str = raw(ret); str = str + '&key='+key; var md5Str = cryptoMO.createHash('md5').update(str).digest('hex'); md5Str = md5Str.toUpperCase(); return md5Str;};
总结
其实代码实现很简单就是看微信的文档就可以。
阅读全文
0 0
- 微信小程序开发(七)小程序支付-查询订单
- 微信小程序开发(八)小程序支付-关闭订单
- 微信小程序开发(十)小程序支付-查询退款
- 微信小程序开发(五)小程序支付-统一下单
- 微信小程序开发(六)小程序支付-notify_url
- 微信小程序开发(九)小程序支付-申请退款
- 微信小程序和支付宝小程序开发记录
- 微信小程序支付demo, php开发小程序支付接口实例
- 支付宝小程序 支付时订单处理失败 报ALI38173
- 支付宝小程序开发教程一
- thinkphp5+easywechat开发小程序支付
- 支付宝小程序开发教程
- 支付宝小程序开发(一)
- 小程序支付demo,微信小程序支付php代码
- 微信支付开发(5) 订单查询
- 微信开发,小程序支付之间的关联-小程序支付开发2
- 小程序支付开发案例总结-小程序支付开发视频教程21
- 微信小程序支付开发步骤
- 使用ftp上传文件代码解析
- input标签加下拉框
- 垃圾收集器相关
- 关于如何正确地安装Teamviewer/许可证到期问题
- java面试总结
- 微信小程序开发(七)小程序支付-查询订单
- 20170622大数据工作
- 项目遇到的问题
- 开发者,只有被裁,没有退休
- php面试题之七——PHP综合应用(高级部分)
- MyEclipse和MySQL连接代码
- Makefile(1)编写简单的makefile批量编译CUDA程序
- 2017.06.21回顾
- Linux 源码安装OpenSSL