Java微信支付开发之查询订单
官方文档
该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
一、应用场景
- 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知
- 调用支付接口后,返回系统错误或未知交易状态情况
- 调用刷卡支付API,返回USERPAYING的状态
- 调用关单或撤销接口API之前,需确认支付状态
二、接口地址
三、请求参数
package com.phil.wechatpay.model.rep;import java.io.Serializable;/*** 查询订单请求参数(正常XML)* @author phil* @date 2017年7月25日**/
public class OrderQueryParams extends AbstractPayParams implements Serializable{/*** */private static final long serialVersionUID = -168458096490563992L;private String transaction_id; //微信订单号,优先private String out_trade_no; //商户订单号 二选一public String getTransaction_id() {return transaction_id;}public void setTransaction_id(String transaction_id) {this.transaction_id = transaction_id;}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;/*** 查询订单返回参数(带<![CDATA[]]>XML格式)* * @author phil* @date 2017年7月25日**/
public class OrderQueryResult extends AbstractPayResult implements Serializable {/*** */private static final long serialVersionUID = -1996103742747816922L;private String return_code; // 返回状态码SUCCESS/FAIL@NotRequireprivate String err_code;// 错误返回的信息描述@NotRequireprivate String err_code_des;// 错误返回的信息描述/**** return_code 、result_code、trade_state ***为SUCCESS ****/.....
}
五、查询订单
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.OrderQueryParams;
import com.phil.wechatpay.model.resp.OrderQueryResult;
import com.phil.wechatpay.service.WechatPayService;/*** 查询订单* @author phil* @date 2017年7月25日**/
@Controller
@RequestMapping("/wxpay/")
public class WechatPayOrderQueryController {@Autowiredprivate WechatPayService wechatPayService;@ResponseBody@RequestMapping("orderQuery")public OrderQueryResult orderQuery(HttpServletRequest request, HttpServletResponse response) throws Exception {OrderQueryResult orderQueryResult = null;OrderQueryParams orderQueryParams = new OrderQueryParams();orderQueryParams.setAppid(WechatConfig.APP_ID);orderQueryParams.setMch_id(WechatConfig.MCH_ID);orderQueryParams.setNonce_str(PayUtil.createNonceStr());orderQueryParams.setTransaction_id(""); //二者选其一,推荐transaction_id//orderQueryParams.setOut_trade_no("");//请求的xmlString orderQueryXml = wechatPayService.abstractPayToXml(orderQueryParams);//签名合并到service// 返回<![CDATA[SUCCESS]]>格式的XMLString orderQueryResultXmL = HttpReqUtil.HttpsDefaultExecute(HttpReqUtil.POST_METHOD,WechatConfig.ORDER_QUERY_URL, null, orderQueryXml);// 进行签名校验if (SignatureUtil.checkIsSignValidFromWeiXin(orderQueryResultXmL)) {orderQueryResult = XmlUtil.getObjectFromXML(orderQueryResultXmL, OrderQueryResult.class);}return orderQueryResult;}
}
Java微信支付开发之查询订单相关推荐
- 微信撤销订单java,Java微信支付开发之关闭订单
一.应用场景 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口 注意:订单生成后不能马上调用关单 ...
- java微信支付v3系列——3.订单创建准备操作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- Java微信支付开发之扫码支付模式二
官方文档 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案 借鉴了很多大神的文章,在此先谢过了 大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款 模式二支付的流程如 ...
- Java微信支付开发之公众号支付(微信内H5调起支付)
官方文档 准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败) 借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公众号 ...
- java微信支付v3系列——6.微信支付查询订单API
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——4.创建订单的封装及使用
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——1.微信支付准备工作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——8.微信支付之退款成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——7.微信支付之申请退款
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——5.微信支付成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
最新文章
- SAP WM Storage Type Search配置里的Storage Class WPC标记
- 关于WPF 中 “System.Windows.Markup.XamlParseException”类型的未经处理的异常在 PresentationFramework.dll 中发生 异常的处理。
- 这样就可以很方便的知道明天的天气了
- 关键词匹配(Ac自动机模板题)
- Vue——自定义组件的 v-model
- sql语法中u‘‘ n‘‘详解
- Ruby on Rails,创建开发用的MYSQL数据库
- 吴恩达机器学习总结五:单变量线性回归实战
- solr4.3纠错源码学习二——基于主索引
- 即时语音提示软件php,即时语音提示校对专家
- 为什么谐振时电抗为0_108kVA/108kV/27kV变频串联谐振试验装置
- 深度学习常用数据集汇总
- spyder的变量窗口显示不全
- WTL 自绘控件库 (CQsEdit)
- C#快递单号查询源码
- 解决 Javascript 中 atob 方法解码中文字符乱码问题
- DirectX11 裁剪像素
- 1006 - 打印星号三角形
- 简单的直接修改MAC地址的方法
- react生命周期详细介绍
热门文章
- 超级详细-NMOS、PMOS的工作原理及相关内容整理(上)
- QA和软件测试员的区别
- 【2019.06.21】基于Airtest的微信朋友圈自动点赞脚本设计与实现 2019.06.21脚本正常运行
- /etc/fstab详细参数配置
- ios旧版本app网站_你的iPhone还需要降级吗?深度分析:苹果为什么不开放iOS降级!...
- 【前端静态资源托管库-CDN】BootCDN资源全线失效
- 解决Android studio 导入工程慢的方法
- 三十种共识算法,直抵背后的灵魂
- 计算机上平方米的单位,word怎么写平方米 word中平方米的单位怎么打
- Unity笔记之动画遮罩