本文实例为大家分享了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语言:微信支付之关闭订单相关推荐

  1. java微信支付超时_Java微信支付之关闭订单

    本文实例为大家分享了java微信支付之关闭订单的具体代码,供大家参考,具体内容如下 一.应用场景 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付 系统下单后,用户支付超 ...

  2. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  3. java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题

    java模拟连接超时 用Toxiproxy和Java的HttpURLConnection模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝-. 结果: 系统:openj ...

  4. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  5. java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次

    我在尝试扩展sql server SP中的锁定超时时遇到问题.无论我尝试什么,它都会继续投掷"锁定请求超时时间超出". 我正在使用 java jtds 1.2.2,c3p0 0.9 ...

  6. java 微信退款接口_java版微信和支付宝退款接口

    本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...

  7. java调用微信红包接口_java调用微信现金红包接口的心得与体会

    这几天看了下以前写的有关微信支付的博客,看的人仍是挺多的,看了下留言不知道是由于博客写的不够细仍是什么状况,大多都找我要源码,我以为吧程序员仍是须要有这么一个思考的过程,所以没直接给源码,俗话说&qu ...

  8. java 红包接口开发_java调用微信现金红包接口的心得与体会总结

    这几天看了下之前写的有关微信支付的博客,看的人还是挺多的,看了下留言不知道是因为博客写的不够细还是什么情况,大多都找我要源码,我觉得吧程序员还是需要有这么一个思考的过程,因此没直接给源码,俗话说&qu ...

  9. java开发微信设计论文_java+mysql微信的烘焙公众号的设计与实现

    摘要随着社会的发展人们的生活压力逐渐变大,人们日常的生活节奏也急剧加速,由此导致时间的缺少,人与人之间面对面交流的机会也越来越少.然而人类是一种群居生物,随时渴望有着他人的陪伴,这种陪伴不仅仅是物质上 ...

  10. java 微信 下载对账单_java下载微信对账单,实现与微信实收对账和日清日结对账...

    最近接手了一个棘手的工作:微信下载对账单. 刚接手完全懵逼,怎么和微信对接啊.然后就是百度.. 终于找到了组织: 微信支付|开发文档 :点击跳转 通过文档我们可以看到,首先是: 1.下载对账单开放接口 ...

最新文章

  1. 一种广泛存在于Facebook、谷歌、小米、阿里等公司的研发组织管理方式
  2. 更简单的调试Release版本Optimize code的.NET程序集
  3. day31 logging 日志模块
  4. linux which
  5. 玩游戏4g计算机的内存不足,windows8.1玩游戏经常提示内存不足
  6. python英文语义角色标注_【顶会100秒】基于相似词计算的旅游词汇语义分析
  7. 流式传输大数据:Storm,Spark和Samza
  8. jquery GET POST
  9. kettle时间维度_MySQL快速生成时间维度表
  10. PNG免扣(抠)素材,直接应用才是设计师友好的帮助图片
  11. JavaSE学习--面向对象
  12. setNavigationBarTitle小程序基础性操作标题改变
  13. 获取csdn 积分和c币方法指南
  14. Cisco交换机链路聚合配置
  15. Windows内网渗透之信息收集
  16. git 仓库分支多文件夹管理
  17. 双非本科的大厂暑假实习之旅
  18. XPIR : Private Information Retrieval for Everyone论文阅读笔记
  19. DirectX技术----D2D基础篇(一)
  20. VUE·17:事件处理之 @keyup、@keydown 等键盘按键触发及 @keyup.enter 等别名

热门文章

  1. 阿里云国际版ECS云服务器ping不通的原因分析
  2. [转载]jbx 乱码问题的解决大全
  3. Spring 实战-第六章-渲染Web视图-6.2创建JSP视图
  4. 游戏统计中一些常用的专业 术语和计算公式
  5. Python连接多种数据库的方式
  6. Linux驱动regulator
  7. 小熊派使SPI驱动TFT-LCD(ST7789)显示试验
  8. 更加清晰的报名要点讲解视频(附图文介绍)
  9. 笔记本开不了机怎么办?
  10. List1_Excise