java微信支付超时_Java微信支付之关闭订单
本文实例为大家分享了java微信支付之关闭订单的具体代码,供大家参考,具体内容如下
一、应用场景
商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付
系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口
注意:订单生成后不能马上调用关单接口,最短调用时间间隔为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;
/**
* 关闭订单返回参数(带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
@NotRequire
private String return_msg; //返回信息
/**** return_code 为SUCCESS ****/
private String result_code;// 业务结果
private String result_msg;// 业务结果描述
@NotRequire
private String err_code;// 错误返回的信息描述
@NotRequire
private String 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 {
@Autowired
private 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("");//自己传入
//请求的xml
String closeOrderXml = wechatPayService.abstractPayToXml(closeOrderParams);//签名合并到service
// 返回格式的XML
String closeOrderResultXmL = HttpReqUtil.HttpsDefaultExecute(HttpReqUtil.POST_METHOD,WechatConfig.CLOSE_ORDER_URL, null, closeOrderXml);
// 进行签名校验
if (SignatureUtil.checkIsSignValidFromWeiXin(closeOrderResultXmL)) {
closeOrderResult = XmlUtil.getObjectFromXML(closeOrderResultXmL, CloseOrderResult.class);
}
return closeOrderResult;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java微信支付超时_Java微信支付之关闭订单相关推荐
- java微信支付代码_Java微信支付之服务号支付代码示例
Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servl ...
- java app微信支付接口_JAVA微信APP支付接口整合
上次我们看到了支付宝的APP支付工具,那么这次就来封装封装微信的APP支付;如果已经清楚了支付宝的支付流程,那么微信支付也和它大同小异了,当然这其中肯定是有各种变化的: 首先让我把微信支付文档的官网贴 ...
- java做微信开发工具_Java微信公众平台开发(14) 微信web开发者工具使用
为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信客户端的表现,使得开发者可以使用这个工具方便地在 PC 或者 Mac 上进行开发和调 ...
- java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题
java模拟连接超时 用Toxiproxy和Java的HttpURLConnection模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝-. 结果: 系统:openj ...
- java下载微信支付账单_java微信支付,对账单下载
2020年1月9日17:22:41 官方文档和sdk https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 官方也是也有一个0.0 ...
- java微信企业付款_Java微信支付-微信企业付款到个人
[实例简介] 微信支付企业付款到个人,包括付款 以及 查询 参考文章http://blog.csdn.net/fengshizty/article/details/53204566 [实例截图] [核 ...
- java微信公众号支付退款_java 微信公众号支付 详细教程【站长吐血整理】
maven或者gradle 项目记得引用第三方开放的sdk工具类,微信支付的,很全 微信开发者第三方sdk库资料:weixin-popular compile group: 'com.github.w ...
- java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次
我在尝试扩展sql server SP中的锁定超时时遇到问题.无论我尝试什么,它都会继续投掷"锁定请求超时时间超出". 我正在使用 java jtds 1.2.2,c3p0 0.9 ...
- java 微信管理平台_java 微信物业管理系统
微信设置:公众号设置,公众号图文素材,企业号设置,微信支付设置,支付接口代申请 数据中心:小区列表,楼宇管理,房屋管理,住户列表 收费管理:收费模板,抄表录入,交易管理,费用通知,收银台 内容设置:模 ...
最新文章
- 逆向-攻防世界-reverse-box
- 小米自然语言处理工程师招聘条件与自己的对应整理(第二次更新)
- jsp电子商务 购物车实现之一 设计篇
- VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/cpuid.c:376 bugNr=1036521
- 获取已发布微信小游戏源码
- bzoj 4034: [HAOI2015]T2
- C++安装失败解决办法
- 小程序生命周期_微信小程序开发日记App生命周期
- java | (十六)XML、代理
- Raspberry Pi使用教程
- 《置身事内》读书笔记第一章 地方政府的权利与事务
- python:max函数
- 支持DoH的DNS服务器,谷歌公共DNS正式支持DoH加密 更安全并且不影响速度
- excel排名_表格技巧—如何在Excel中快速计算排名
- 如何解决Kodi的YouTube“配额超过”问题
- layui 弹出层回调获取弹出层数据
- UltraEdit-32 v14.10 简体中文版
- Silverlight开发MMORPG大型多人在线角色扮演游戏(团队项目)
- 实现模拟手机全键盘车牌号输入 jq+css
- Android 最简单 二维码去除白边的方式
热门文章
- linux下RTNETLINK answers: File exists的解决方案
- CentOS 7下mysqld服务启动失败终极解决方案
- eclipse安装svn服务器
- Shiro 综合实例
- python 判断文件夹是否存在 否则创建_10行Python代码自动清理电脑内重复文件,解放双手!...
- Android:学习路线总结,绝对干货
- linux能记录日志的终端,如何记录Linux终端下的操作日志
- 代码逻辑分析_致C++完美主义者:使用Visual Studio新工具分析你的代码
- python符号表_根据第一个字符分割列表-Python
- JQ实现王者荣耀手风琴效果