前言
这一章开始就不仅仅代码分析退款相关的接口,因为里面有些官方文档讲解得比较晦涩难懂的东西在里面,我尽可能用接地气的方式描述出来。后面其他的接口应该就不讲解了,毕竟自己没有实战的机会。怕误导大家;
这个可能是微信支付-H5的最后一章了,由于事情过得有点久远,可能有些东西会讲错,可以参考具体中的碰到问题的解决思路,
因为这个接口算是众多接口比较特殊的存在;
正言
、
如图需要公司申请证书,你会得到一个apiclient_cert.p12格式的证书。但是如何使用呢?看官方文档直接理解真的会被带偏到无可附加的可怕地步。
项目中是不需要安装啥这个证书,仅仅挂载在项目中即可,估计是别的地方的用途;
下面我将把证书存放在springboot项目的resources/cert/apiclient_cert.p12路径中演示使用方法。
后台申请退款
工具层
package com.ruoyi.utils.wxPay;
import java.io.InputStream;
public class MyWXPayConfig extends WXPayConfig {
/**
* 获取 App ID
* @return App ID
*/
@Override
public String getAppID() {
return "----根据自己的商户进行填写---";
}
/**
* 获取 Mch ID 商户号
* @return Mch ID
*/
@Override
public String getMchID() {
return "----根据自己的商户进行填写---";
}
/**
* 获取 API 密钥
* @return API密钥
*/
@Override
public String getKey() {
return "----根据自己的商户进行填写---";
}
/**
* 获取商户证书内容
* @return 商户证书内容
*/
@Override
InputStream getCertStream() {
InputStream istream = null;
try {
istream = new ClassPathResource(WXPayConstants.CERT_PATH).getInputStream();//WXPayConstants.CERT_PATH,证书的路径,这里我使用了静态变量
}catch (Exception e){
throw new RuntimeException(e.getMessage());
}
return istream;
}
/**
* 获取WXPayDomain, 用于多域名容灾自动切换
* @return
*/
@Override
IWXPayDomain getWXPayDomain() {
return new IWXPayDomain() {
@Override
public void report(String domain, long elapsedTimeMillis, Exception ex) {
}
@Override
public DomainInfo getDomain(WXPayConfig config) {
return new IWXPayDomain.DomainInfo(WXPayConstants.DOMAIN_API, true);
}
};
}
}
控制层
/**
* 查询订单 应用场景
* 该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
* 需要调用查询接口的情况:
* ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
* ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
* ◆ 调用付款码支付API,返回USERPAYING的状态;