微信支付之关闭订单

时间:2015-01-29 17:51:54   收藏:0   阅读:1271

应用场景

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

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

参考代码如下:

package com.wingo.action.config;

 

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;

 

/**

 *

 * @author 李欣桦

 * @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 关闭订单失败的操作

       }

    }

}

相关工具类下载:http://download.csdn.net/detail/u011160656/8354883

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!