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微信支付代码_Java微信支付之服务号支付代码示例
Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servl ...
- 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微信支付【面试+工作】
原标题:Java微信支付[面试+工作] Java微信支付[面试+工作] 微信支付文档上有刷卡支付,扫码支付,公众号支付,APP支付等各种支付手段.本次就微信内打开的网页支付为例子,用java进行实现一 ...
- java app微信支付接口_JAVA微信APP支付接口整合
上次我们看到了支付宝的APP支付工具,那么这次就来封装封装微信的APP支付;如果已经清楚了支付宝的支付流程,那么微信支付也和它大同小异了,当然这其中肯定是有各种变化的: 首先让我把微信支付文档的官网贴 ...
- java(服务器端)调用支付宝和微信支付功能
之前发过这篇文章,但没有排版,今天重新整理了一下 最近项目上用到了调用微信和支付宝的第三方支付接口,因为以前没用过,所以这次用到了之后总结一下分享给大家,这里介绍两种支付方式,即app支付和扫码支付方 ...
- Day118.尚医通:订单列表、详情、微信支付、查询交易状态
目录 一.订单列表 1.后端接口 2.前端对接 二.订单详情 三.订单支付 -- 微信支付 1.微信扫码支付申请 2.获取二维码 (1). 准备工作 (2) 添加交易记录接口 (3) 生成二维码接口 ...
- Java对接第三方支付渠道之微信支付APIV3版本
提示:微信支付APIV3版本对接流程梳理,目前微信支付提供APIV3和APIV2两个版本,简而言之,V3版本的安全性比V2更高. Java对接第三方支付渠道之微信支付APIV3版本 一.接入指引 1. ...
- 电商平台接入第三方支付接口之微信支付接入订单系统
边做边更新------ 先接入微信接口: 支付方式:用户扫描二维码支付 接口类型:扫码支付之模式二 先copy一份模式二的业务流程时序图 业务流程说明: (1)商户后台系统根据用户选购的商品生成订单. ...
- 西米支付:支付宝/微信支付/银联支付通道的接入介绍
本文以电脑网站支付为例,着重对第三方支付通道的接入进行了分析,包括支付宝支付接入.微信支付接入及银联支付接入. 1.支付宝支付接入 支付宝支付能力主要有当面付.刷脸付.App支付.手机网站支付.电脑网 ...
最新文章
- GitLab安装后修改IP/域名
- python_xlsxwriter模块
- boost::sort模块实现Spinsort算法的测试程序
- eclipse中linux打包,Eclipse中Maven打包程序并在Linux中运行
- Java黑皮书课后题第8章:**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所
- 论坛一大早白屏,无法访问
- python设置时间步长与时间离散格式_python怎么定义时间
- EntityFramework进阶——Entity Splitting和Table Splitting
- 数据库的事务隔离级别
- vmware安装报错及注册时无权输入许可证密钥的解决办法及步骤
- 无法连接阿里云 Windows 实例远程桌面
- 25 个你可能不知道的 Linux 真相
- 高一到高三计算机笔记,高中数学笔记总结高一至高三,很全.doc
- Ubuntu 18 安装截图工具 flameshot
- 友盟+吕志国:数据智能让天下没有难做的营销
- 找游戏关键CALL入门
- 杰里之AC696N 的 LADC 和蓝牙后台设计注意【篇】
- 前端|网页制作秘密武器 之发光边框
- Word 中给公式自动编号
- NO.6网工学习之QINQ
热门文章
- 用什么词典可以翻译php,PHP调用有道词典翻译API实现翻译功能及代码
- Proguard混淆与Maven集成
- Android Device Moniter部分问题的解决办法:
- 如何提高软件测试能力的19条建议,希望对你有用
- developer.biao.daily.20140731
- Spring学习笔记-C7-SpringMVC高级技术
- js会员头像上传拖动处理头像类
- 【计算机体系结构量化与研究方法笔记】
- java大鱼吃小鱼实验报告摘要_java 大鱼吃小鱼游戏总结
- 卡内基梅隆大学计算机专业类别,卡内基梅隆大学计算机专业优势介绍