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

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

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

  2. java微信支付代码_Java微信支付之服务号支付代码示例

    Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servl ...

  3. java下载微信支付账单_java微信支付,对账单下载

    2020年1月9日17:22:41 官方文档和sdk https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 官方也是也有一个0.0 ...

  4. 联通支付java面试_Java微信支付【面试+工作】

    原标题:Java微信支付[面试+工作] Java微信支付[面试+工作] 微信支付文档上有刷卡支付,扫码支付,公众号支付,APP支付等各种支付手段.本次就微信内打开的网页支付为例子,用java进行实现一 ...

  5. java app微信支付接口_JAVA微信APP支付接口整合

    上次我们看到了支付宝的APP支付工具,那么这次就来封装封装微信的APP支付;如果已经清楚了支付宝的支付流程,那么微信支付也和它大同小异了,当然这其中肯定是有各种变化的: 首先让我把微信支付文档的官网贴 ...

  6. java(服务器端)调用支付宝和微信支付功能

    之前发过这篇文章,但没有排版,今天重新整理了一下 最近项目上用到了调用微信和支付宝的第三方支付接口,因为以前没用过,所以这次用到了之后总结一下分享给大家,这里介绍两种支付方式,即app支付和扫码支付方 ...

  7. Day118.尚医通:订单列表、详情、微信支付、查询交易状态

    目录 一.订单列表 1.后端接口 2.前端对接 二.订单详情 三.订单支付 -- 微信支付 1.微信扫码支付申请 2.获取二维码 (1). 准备工作 (2) 添加交易记录接口 (3) 生成二维码接口 ...

  8. Java对接第三方支付渠道之微信支付APIV3版本

    提示:微信支付APIV3版本对接流程梳理,目前微信支付提供APIV3和APIV2两个版本,简而言之,V3版本的安全性比V2更高. Java对接第三方支付渠道之微信支付APIV3版本 一.接入指引 1. ...

  9. 电商平台接入第三方支付接口之微信支付接入订单系统

    边做边更新------ 先接入微信接口: 支付方式:用户扫描二维码支付 接口类型:扫码支付之模式二 先copy一份模式二的业务流程时序图 业务流程说明: (1)商户后台系统根据用户选购的商品生成订单. ...

  10. 西米支付:支付宝/微信支付/银联支付通道的接入介绍

    本文以电脑网站支付为例,着重对第三方支付通道的接入进行了分析,包括支付宝支付接入.微信支付接入及银联支付接入. 1.支付宝支付接入 支付宝支付能力主要有当面付.刷脸付.App支付.手机网站支付.电脑网 ...

最新文章

  1. GitLab安装后修改IP/域名
  2. python_xlsxwriter模块
  3. boost::sort模块实现Spinsort算法的测试程序
  4. eclipse中linux打包,Eclipse中Maven打包程序并在Linux中运行
  5. Java黑皮书课后题第8章:**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所
  6. 论坛一大早白屏,无法访问
  7. python设置时间步长与时间离散格式_python怎么定义时间
  8. EntityFramework进阶——Entity Splitting和Table Splitting
  9. 数据库的事务隔离级别
  10. vmware安装报错及注册时无权输入许可证密钥的解决办法及步骤
  11. 无法连接阿里云 Windows 实例远程桌面
  12. 25 个你可能不知道的 Linux 真相
  13. 高一到高三计算机笔记,高中数学笔记总结高一至高三,很全.doc
  14. Ubuntu 18 安装截图工具 flameshot
  15. 友盟+吕志国:数据智能让天下没有难做的营销
  16. 找游戏关键CALL入门
  17. 杰里之AC696N 的 LADC 和蓝牙后台设计注意【篇】
  18. 前端|网页制作秘密武器 之发光边框
  19. Word 中给公式自动编号
  20. NO.6网工学习之QINQ

热门文章

  1. 用什么词典可以翻译php,PHP调用有道词典翻译API实现翻译功能及代码
  2. Proguard混淆与Maven集成
  3. Android Device Moniter部分问题的解决办法:
  4. 如何提高软件测试能力的19条建议,希望对你有用
  5. developer.biao.daily.20140731
  6. Spring学习笔记-C7-SpringMVC高级技术
  7. js会员头像上传拖动处理头像类
  8. 【计算机体系结构量化与研究方法笔记】
  9. java大鱼吃小鱼实验报告摘要_java 大鱼吃小鱼游戏总结
  10. 卡内基梅隆大学计算机专业类别,卡内基梅隆大学计算机专业优势介绍