Java微信支付开发之关闭订单

来源:互联网 发布:wear软件下载 编辑:程序博客网 时间:2024/05/18 03:02

官方文档

一、应用场景

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

二、接口地址

https://api.mch.weixin.qq.com/pay/closeorder

三、请求参数

只能根据自己商户系统的订单号关闭

package com.phil.wechatpay.model.rep;import java.io.Serializable;/** * 关闭订单请求参数(正常XML) * @author phil * @date  2017年7月25日 * */public class CloseOrderParams extends AbstractPayParams implements Serializable{/** *  */private static final long serialVersionUID = -4206464928803827244L;private String out_trade_no; //商户订单号 public String getOut_trade_no() {return out_trade_no;}public void setOut_trade_no(String out_trade_no) {this.out_trade_no = out_trade_no;}}

四、返回结果

package com.phil.wechatpay.model.resp;import java.io.Serializable;import com.phil.common.annotation.NotRequire;/** * 关闭订单返回参数(带<![CDATA[]]>XML格式) *  * @author phil * @date 2017年7月25日 * */public class CloseOrderResult extends AbstractPayResult implements Serializable {/** *  */private static final long serialVersionUID = -1996103742747816922L;private String return_code; // 返回状态码SUCCESS/FAIL@NotRequireprivate String return_msg; //返回信息/**** return_code 为SUCCESS ****/private String result_code;// 业务结果private String result_msg;// 业务结果描述@NotRequireprivate String err_code;// 错误返回的信息描述@NotRequireprivate String err_code_des;// 错误返回的信息描述public String getReturn_code() {return return_code;}public void setReturn_code(String return_code) {this.return_code = return_code;}public String getReturn_msg() {return return_msg;}public void setReturn_msg(String return_msg) {this.return_msg = return_msg;}public String getResult_code() {return result_code;}public void setResult_code(String result_code) {this.result_code = result_code;}public String getResult_msg() {return result_msg;}public void setResult_msg(String result_msg) {this.result_msg = result_msg;}public String getErr_code() {return err_code;}public void setErr_code(String err_code) {this.err_code = err_code;}public String getErr_code_des() {return err_code_des;}public void setErr_code_des(String err_code_des) {this.err_code_des = err_code_des;}}

五、关闭订单

package com.phil.wechatpay.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.phil.common.config.WechatConfig;import com.phil.common.util.HttpReqUtil;import com.phil.common.util.PayUtil;import com.phil.common.util.SignatureUtil;import com.phil.common.util.XmlUtil;import com.phil.wechatpay.model.rep.CloseOrderParams;import com.phil.wechatpay.model.resp.CloseOrderResult;import com.phil.wechatpay.service.WechatPayService;/** * 关闭订单 * @author phil * @date  2017年7月25日 * */@Controller@RequestMapping("/wxpay/")public class WechatPayCloseOrderController {@Autowiredprivate WechatPayService wechatPayService;@ResponseBody@RequestMapping("closeOrder")public CloseOrderResult closeOrder(HttpServletRequest request, HttpServletResponse response) throws Exception {CloseOrderResult closeOrderResult = null;CloseOrderParams closeOrderParams = new CloseOrderParams();closeOrderParams.setAppid(WechatConfig.APP_ID);closeOrderParams.setMch_id(WechatConfig.MCH_ID);closeOrderParams.setNonce_str(PayUtil.createNonceStr());closeOrderParams.setOut_trade_no("");//自己传入//请求的xmlString closeOrderXml = wechatPayService.abstractPayToXml(closeOrderParams);//签名合并到service// 返回<![CDATA[SUCCESS]]>格式的XMLString closeOrderResultXmL = HttpReqUtil.HttpsDefaultExecute(HttpReqUtil.POST_METHOD,WechatConfig.CLOSE_ORDER_URL, null, closeOrderXml);// 进行签名校验if (SignatureUtil.checkIsSignValidFromWeiXin(closeOrderResultXmL)) {closeOrderResult = XmlUtil.getObjectFromXML(closeOrderResultXmL, CloseOrderResult.class);}return closeOrderResult;}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在这种路口遇到行人突然横穿怎么办 在左拐车道却直行了怎么办 路边简易房让拆除不想拆怎么办 英国护照的名和姓印颠倒了怎么办 加热圈功率小加不到设定温度怎么办 本田飞度05年车尾气不好怎么办 文件在lr中打开后找不到了怎么办 手机安装软件成功屏幕上没有怎么办 脸过敏发红痒怎么办用什么药膏 脸上又红又肿又痒怎么办 宝宝把皮革咬烂吃掉了怎么办 自动档皮革挡把防尘套烂了怎么办 pu包用酒精擦坏了怎么办 白色的面料被84弄黄了怎么办 要账的人赖在家不走怎么办 两塔吊的安全距离不够2米怎么办 腿上被蚊子咬后留下的黑疤怎么办 携程订的酒店酒店一直没确认怎么办 客斤的无窗挨着厨房怎么办 餐桌和墙紧挨着容易脏怎么办 vivo手机被设置成英文该怎么办 电脑开机后显示英文字该怎么办? 看到文言文就不会翻译该怎么办呢 房间楼层太高闷热不通风怎么办 对方全责不理赔没有财产怎么办啊 买二手房过户后发现房顶漏水怎么办 钻石绣的钻两个粘在一起怎么办 开修理部的一天不干活都着急怎么办 调好的车漆时间长了有点稠怎么办 下滤鱼缸下水管声音大怎么办 家里水管不开水龙头就总是响怎么办 生完儿子后腹股沟特黑怎么办 因盗窃罪出狱数额较大还不起怎么办 司法拍卖房原房主拒绝搬离怎么办 wps卡了没反应没有保存怎么办 微信扫描支付环境有风险怎么办 手机安装东西突然要扫描很久怎么办 我惹朋友真的很生气了怎么办 买了保险后又犯杀人罪 保险怎么办 水瓶盖了拧歪了打不开怎么办 刚买的老干妈盖子打不开怎么办?