您的位置:首页 > 移动开发 > 微信开发

微信小程序开发(十)小程序支付-查询退款

2017-06-22 10:41 645 查看

应用场景

提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款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》

《微信小程序开发(七)小程序支付-查询订单》

《微信小程序开发(八)小程序支付-关闭订单》

《微信小程序开发(九)小程序支付-申请退款》

《微信小程序开发(十)小程序支付-查询退款》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: