微信支付关闭订单开发案例详解

2017年09月17日 10:00 | 2900次浏览

应用场景

以下情况需要调用关单接口:商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。

官方文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_3

参考代码如下:

import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
 
import com.wingo.util.CommonUtil;
import com.wingo.util.ConfigUtil;
import com.wingo.util.PayCommonUtil;
import com.wingo.util.XMLUtil;
 
/**
 *
 * V型知识库 www.vxzsk.com
 * @date 2015-1-6下午5:13:47
 *
 * 关闭订单接口
 */
public class CloseOrderAction {
    public static void main(String[]args) throws Exception {
        SortedMap<Object,Object> parameters =new TreeMap<Object,Object>();
        parameters.put("appid",ConfigUtil.APPID);
        parameters.put("mch_id",ConfigUtil.MCH_ID);
        parameters.put("out_trade_no","1832484260");//商户订单号,要唯一
        parameters.put("nonce_str",PayCommonUtil.CreateNoncestr());
        String sign =PayCommonUtil.createSign("utf-8", parameters);
        parameters.put("sign", sign);
        String reuqestXml =PayCommonUtil.getRequestXml(parameters);
        
        String result=CommonUtil.httpsRequest(ConfigUtil.CHECK_ORDER_URL, "POST",reuqestXml);
        System.out.println(result);
        Map<String, String> map =XMLUtil.doXMLParse(result);
        String returnCode =map.get("return_code");
        String resultCode =map.get("result_code");
        if(returnCode.equalsIgnoreCase("SUCCESS")&&resultCode.equalsIgnoreCase("SUCCESS")){
            //TODO 关闭订单成功的操作
            System.out.println("订单关闭成功");
        }else {
           //TODO 关闭订单失败的操作
       }
    }
}

上述代码为一个main方法,相关工具类代码下载地址为https://www.vxzsk.com/load/33.html



小说《我是全球混乱的源头》

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程