Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

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

$
0
0

如果你已经看了前面的《微信小程序开发(五)小程序支付-统一下单》《微信小程序开发(七)小程序支付-查询订单》。这个关闭订单就更加不是问题了。

应用场景

以下情况需要调用关单接口:商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。

接口说明

这里写图片描述
这一依然要注意的是商户订单号-out_trade_no 这个,因为我们退款是根据这去微信那边退款的。

代码实现

/*
 * 根据商户订单号out_trade_no 关闭订单
 */
router.all('/api/wxpay/closeOrder', 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/closeorder';
    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));
                }
            });
        }
    })
});
作者:zhuming3834 发表于2017/6/22 10:09:16 原文链接
阅读:19 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>