微信支付之关闭订单

应用场景

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

官方文档: 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值