java微信支付超时_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;
}
}
复制代码
希望这篇文章可以帮助到你,总之同学们,IT资讯尽在职坐标。
java微信支付超时_Java语言:微信支付之关闭订单相关推荐
- java微信支付超时_Java微信支付之关闭订单
本文实例为大家分享了java微信支付之关闭订单的具体代码,供大家参考,具体内容如下 一.应用场景 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付 系统下单后,用户支付超 ...
- java c++的区别_Java语言与C、C++之间的区别?
小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...
- java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题
java模拟连接超时 用Toxiproxy和Java的HttpURLConnection模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝-. 结果: 系统:openj ...
- java程序设计基础篇_Java语言程序设计(基础篇) 第一章
第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...
- java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次
我在尝试扩展sql server SP中的锁定超时时遇到问题.无论我尝试什么,它都会继续投掷"锁定请求超时时间超出". 我正在使用 java jtds 1.2.2,c3p0 0.9 ...
- java 微信退款接口_java版微信和支付宝退款接口
本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...
- java调用微信红包接口_java调用微信现金红包接口的心得与体会
这几天看了下以前写的有关微信支付的博客,看的人仍是挺多的,看了下留言不知道是由于博客写的不够细仍是什么状况,大多都找我要源码,我以为吧程序员仍是须要有这么一个思考的过程,所以没直接给源码,俗话说&qu ...
- java 红包接口开发_java调用微信现金红包接口的心得与体会总结
这几天看了下之前写的有关微信支付的博客,看的人还是挺多的,看了下留言不知道是因为博客写的不够细还是什么情况,大多都找我要源码,我觉得吧程序员还是需要有这么一个思考的过程,因此没直接给源码,俗话说&qu ...
- java开发微信设计论文_java+mysql微信的烘焙公众号的设计与实现
摘要随着社会的发展人们的生活压力逐渐变大,人们日常的生活节奏也急剧加速,由此导致时间的缺少,人与人之间面对面交流的机会也越来越少.然而人类是一种群居生物,随时渴望有着他人的陪伴,这种陪伴不仅仅是物质上 ...
- java 微信 下载对账单_java下载微信对账单,实现与微信实收对账和日清日结对账...
最近接手了一个棘手的工作:微信下载对账单. 刚接手完全懵逼,怎么和微信对接啊.然后就是百度.. 终于找到了组织: 微信支付|开发文档 :点击跳转 通过文档我们可以看到,首先是: 1.下载对账单开放接口 ...
最新文章
- 一种广泛存在于Facebook、谷歌、小米、阿里等公司的研发组织管理方式
- 更简单的调试Release版本Optimize code的.NET程序集
- day31 logging 日志模块
- linux which
- 玩游戏4g计算机的内存不足,windows8.1玩游戏经常提示内存不足
- python英文语义角色标注_【顶会100秒】基于相似词计算的旅游词汇语义分析
- 流式传输大数据:Storm,Spark和Samza
- jquery GET POST
- kettle时间维度_MySQL快速生成时间维度表
- PNG免扣(抠)素材,直接应用才是设计师友好的帮助图片
- JavaSE学习--面向对象
- setNavigationBarTitle小程序基础性操作标题改变
- 获取csdn 积分和c币方法指南
- Cisco交换机链路聚合配置
- Windows内网渗透之信息收集
- git 仓库分支多文件夹管理
- 双非本科的大厂暑假实习之旅
- XPIR : Private Information Retrieval for Everyone论文阅读笔记
- DirectX技术----D2D基础篇(一)
- VUE·17:事件处理之 @keyup、@keydown 等键盘按键触发及 @keyup.enter 等别名