应用场景
提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
接口说明
这里退款还是根据商户订单号-out_trade_no去微信那边查询
代码实现
/** 根据商户订单号out_trade_no 查询退款*/
router.all('/api/wxpay/refundQuery', function(req, res, next) {var param = req.query || req.params; var out_trade_no = param.out_trade_no;console.log('out_trade_no = ' + out_trade_no);var nonce_str = getNonceStr();var fee = '1';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 = refundQuerySign(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/refundquery';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));}});}else{res.end(JSON.stringify({msg: "请求失败",status: "103"}));}})
});
总结
关于小程序支付基本都写完了。
《微信小程序开发(五)小程序支付-统一下单》
《微信小程序开发(六)小程序支付-notify_url》
《微信小程序开发(七)小程序支付-查询订单》
《微信小程序开发(八)小程序支付-关闭订单》
《微信小程序开发(九)小程序支付-申请退款》
《微信小程序开发(十)小程序支付-查询退款》