JAVA后台 如何调用微信支付V3API--公众号支付篇
1.背景
大家好,我是 程序员码递夫。
微信支付API升级到V3版本后,提供了更安全,更方便的调用。对于很多新人,不知道如何下手, 计划写几篇文章,给新手一一解惑。 代码示例,后端为JAVA, 前端为uniApp。
本文是《uniapp H5如何唤起微信公众号支付》的姊妹篇, 主要介绍 java 后端的内容。
2.微信支付流程图
看上图,步骤3,后台收到用户端的下单请求后,先生成订单,然后根据订单内容,向微信申请预付单。
本文主要介绍后台如何申请预防单的内容。 对于如何处理微信回调通知,可以看《JAVA后台如何回复微信V3支付的通知》
微信支付有很多方式,包括公众号支付,H5支付,扫描支付,APP支付,刷脸支付,付款码支付,每种支付方式,调用的API和参数不一样,本文暂只介绍 公众号支付。 其他支付方式,将另文介绍。
3. 相关源码
3.1 java后台加入微信V3SDK的依赖
<!--微信支付相关 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.12</version>
<exclusions>
<exclusion>
<!-- 过滤okhttp包-->
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
3.2 application.yml 加入相关微信支付的配置信息
wxPay:
#是否启用
enable : true
#商户号
merchant-id : 16542
# 商户API私钥文件 ,
private-key-path : D:\Devs\apache-tomcat-8.5.16-1\webapps\res\wxcert\apiclient_key.pem
#商户证书序列号
merchant-serial-number : *****F682FC35C51AD668F0DA3******
#商户APIV3密钥
api-v3-key: *******
#公众号appID
app-id : wx27*********
3.3 control层提供相应的接入接口
service返回的内容就有 前端页面需要的支付信息。
3.4 service实现具体的业务处理
3.5 WxPayUtil封装了 具体的微信预付单请求
5.后记
看到这里,微信支付是不是也不难了,这要归功微信平台提供了这么好用的V3 SDK版本,提供了更安全,更方便的调用。
我是 程序员码递夫。觉得本文不错,来个3连吧。
6.参考文章
-
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/introduction.html
关于微信支付的介绍 -
https://pay.weixin.qq.com/docs/merchant/apis/jsapi-payment/direct-jsons/jsapi-prepay.html
JSAPI支付产品介绍