APP整合微信APV3支付过程解析

发布时间 2023-12-14 09:52:57作者: xiaobaibao

求个关注和点赞!!!!!谢谢啦~~~~~~~~~~~~~~~~~~~~~

1.官方文档:

开发指引-APP支付 | 微信支付商户平台文档中心 (qq.com)

2.根据官方文档给的SDK进入到相应的文档:

https://github.com/wechatpay-apiv3/wechatpay-java

3.在idea引入相应的maven依赖:

<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.12</version>
</dependency>

这个依赖引入之后如果版本号飘红,就刷新maven即可

4.文档下面有Native下单样例,具体别的样例文档也已经给出:

https://github.com/wechatpay-apiv3/wechatpay-java/tree/main/service/src/example/java/com/wechat/pay/java/service/payments/app

当然,打不开不要急因为很卡很卡很卡很卡很卡......

5.找到相应的example,接下来我们根据每一行代码进行详细介绍:

// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
// 创建 config 目的是为了提供给微信支付重要的配置信息
Config config =
new RSAAutoCertificateConfig.Builder()
// 商户号
.merchantId(wxUtil.mchId)
// 证书私钥地址:放在本地也可,服务器也可,但是一定起个英文名字放!!!
.privateKeyFromPath(wxUtil.privateKeyPath)
// 证书序列号
.merchantSerialNumber(wxUtil.mchSerialNo)
// v3密钥
.apiV3Key(wxUtil.apiV3Key)
.build();
// 构建 service,SDK里面配置了相应地与签名有关的操作,给我们开发者省了很大的力气
AppService service = new AppService.Builder().config(config).build();
// NativePayService service = new NativePayService.Builder().config(config).build();
// request.setXxx(val)设置所需参数,具体参数可见Request定义
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
amount.setTotal(rechargeOrder.getPrice().intValue());
request.setAmount(amount);
request.setAppid(wxUtil.appId);
request.setMchid(wxUtil.mchId);
request.setDescription(order.getDescription());
request.setNotifyUrl(wxUtil.notifyDomain);
request.setOutTradeNo(order.getOrderSn());
// 调用下单方法,得到应答
PrepayResponse response = service.prepay(request);

6.至此其实就可以了,有几个方面需要注意一下:

1>>

java里面的密钥生成一般是128位,但是我们使用的这个方法里面所需要的密钥超过了128位,必须替换jdk里的相应jar包,可以去官网下载(我是用的jdk1.8):

JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

去官网选择自己合适的版本即可。

下载完成之后,将%JDK_HOME%\jre\lib\security目录下的两个源文件替换掉即可。

替换之前记得备份一下,不成功的话就重启idea和刷新maven。

2>>

其他的SDK不一定安全,建议使用这个,或者自己根据官网的接口文档自己封装也可以。

APP下单封装的service有两个,使用哪一个都可以,但是注意他们的相应和接收都不一样,要一一对应即可。