首页
首页 教程 派聪明
  • 首页
  • 教程
  • 派聪明
  • 登录
登录技术派畅享更多权益

用户名密码登录

其他登录:
icon_GitHubCreated with sketchtool.
绑定星球,畅享VIP服务

微信扫码/长按识别登录

输入验证码
有效期五分钟 👉 手动刷新

登录即同意 用户协议 和 隐私政策

绑定二哥编程星球,畅享 VIP 尊享服务!

戳我了解如何获取星球编号,新窗口打开

添加二哥微信 itwanger 审核更快

记得备注 星球编号
我会根据星球编号进行审核
1
如何学习技术派?
更新时间: 2023年11月28日
星球
2
技术派的架构设计是什么样的?
更新时间: 2023年03月22日
星球
3
如何整合本地缓存 Caffeine?
更新时间: 2023年03月15日
星球
4
整合 RabbitMQ
更新时间: 2023年05月15日
星球
5
给 RabbitMQ 添加连接池
更新时间: 2023年05月23日
星球
6
如何保证缓存一致性?
更新时间: 2023年05月15日
星球
7
如何实现在线人数统计?
更新时间: 2023年03月25日
星球
8
MySQL同步ES
更新时间: 2023年06月09日
星球
9
redis实现活跃排行榜
更新时间: 2023年08月21日
星球
10
实例演示如何实现性能优化
更新时间: 2023年08月30日
星球
11
十二种性能优化方案实战
更新时间: 2023年11月21日
星球
12
配置 SSL 证书
更新时间: 2023年11月21日
星球
13
ngrok内网穿透访问本地服务
更新时间: 2023年12月01日
星球
14
上传图片至 OSS
更新时间: 2023年12月04日
星球
15
如何渲染 markdown
更新时间: 2023年12月20日
星球
16
如何将技术派写到简历上?
更新时间: 2023年11月10日
星球
17
技术派的 Redis 分布式锁
更新时间: 2024年10月22日
星球
18
Linux 一键源码部署技术派
更新时间: 2024年11月12日
星球
19
如何接入微信支付?
更新时间: 2024年12月11日
星球
20
整合FastExcel导出500万条数据
更新时间: 2024年12月19日
星球
21
接入 deepseek API
更新时间: 2025年02月07日
星球
关注公众号
原创
技术派接入微信支付全流程,全文干货满满,超值。

上一篇基于个人收款码 + 作者邮箱确认收费的方式实现了付费阅读,适用于无法开通微信/支付宝支付的小伙伴(需要企业商户);如果有企业商户,就可以开通微信支付,就可以实现全自动的付费解锁阅读。

上一篇中的作者邮箱确认收费,其实就是变相增加了一种企业商户的能力,因为个人收款码是无法发起自动回调收款通知的,等于说用作者邮箱主动确认这个手动操作去实现回调能力。

技术派目前已经实现了微信支付的集成,想体验相关功能的小伙伴可以访问 从0到1封装一个通用的耗时统计工具类 来试试。

下面给大家带来全流程的微信支付集成方案。

微信支付相关材料准备

接入前准备 - H5支付 | 微信支付商户文档中心

1.1 微信支付前置材料准备

根据官方文档进行配置:参数申请 - 通用规则 | 微信支付商户文档中心

A. 绑定AppId

在下图对应的路径中,进行APPID绑定

  • 支持微信公众号(服务号,非个人订阅号)
  • 小程序
  • 企业微信(技术派是通过二哥的企业微信来完成的)

B. 申请开通支付方式

①、申请开通h5支付(针对手机浏览器访问站点进行支付的场景)。对于h5支付,需要提前准备一些材料:

  • 备案过的域名,如 paicoding.com
  • 一个用于支付的在线页面 https://paicoding.com/user/pay

②、申请开通native支付(pc站点,实现扫码支付的场景),开通之后需要配置回调的地址

注意在产品大全这里找。

1.2 证书配置

配置API Key

配置API key - 通用规则 | 微信支付商户文档中心

下载并配置商户证书

下载并配置商户证书 - 通用规则 | 微信支付商户文档中心

申请后,需要下面几个关键信息:

①、证书压缩包: xxxx_cert.zip

②、APIv2 密钥: -- (这个在代码中没有实际使用)

  • 密钥(字符串):xdfaljf
  • 有效期:如 2029/12/01

③、APIv3密钥:

  • 密钥(字符串):jq4123jk4

在 API 安全这里进行调整。

用于代码配置的关键参数:

wx:
    appId: wxb6721----1b5c5
    #商户号
    merchantId: 1641---78
    #商户API私钥
    privateKey: cert/apiclient_key.pem
    #商户证书序列号
    # openssl x509 -in apiclient_cert.pem -noout -serial
    merchantSerialNumber: 2E4806A3BF-----9AC49897FE46BC9
    #商户APIv3密钥
    apiV3Key: jQjhtFlpmaBD----Ay
    #支付通知地址
    payNotifyUrl: https://paicoding.com/wx/payNotify
    #退款通知地址
    refundNotifyUrl: https://paicoding.com/wx/refundNotify
Info

说明:

  • 商户号在微信支付的后台,账号信息获取
  • appId 即前面在微信支付后台绑定的appId
  • 商户证书序列号:根据上面的证书中的 apiclient_cert.pem 文件生成
  • Linux 环境,执行 openssl x509 -in apiclient_cert.pem -noout -serial 命令,输出的就是我们要的
  • apiV3Key: 证书生成时,设置的密钥

上面生成的密钥,一般是五年的有效期,到期之后需要重新再生成

:::

技术派集成微信支付

前面准备完毕之后,接下来进入编码环节,将在项目中集成微信支付的全套流程;对于PC站点的技术派而言,我们采取微信native支付的方式进行,对应的交互流程如下图

API 文档:产品介绍 - Native支付 | 微信支付商户文档中心

2.1 关键设计

在具体编码之前,我们先梳理一下,集成微信支付,我们需要做什么(没有阅读 ✅技术派付费阅读方案设计(👍强烈推荐) 这篇文章的,强烈建议先看完再继续下面的内容)

任务1: 给用户展示付款二维码,用于用户实现扫码支付

  1. 后台服务向微信下单,用于获取唤起支付的交易链接
  2. 拿到微信返回的code_url,生成二维码展示给用户,用于扫码支付

任务2:接收微信的支付结果回调,判断支付成功与否

  1. 定义一个接口,用于接收微信支付回调,更新支付状态
  2. 定时任务补漏,校验微信支付的结果,避免回调处理异常、导致支付状态一直未更新(非必须)

2.2 技术实现

基于微信的交互流程图,梳理的两个实现事项之后,接下来就可以进入真正的编码环节了。要实现微信支付流程,我们最少需要做下面两件事情:

  • 调用微信下单接口,根据微信的返回值,给用户展示付款二维码
  • 提供一个微信回调接口,判断支付成功/失败

2.2.1 微信SDK配置

直接引入微信官方的sdk进行微信后台的交互,再pom.xml 中添加依赖

<!-- 微信支付 -->
<dependency>
  <groupId>com.github.wechatpay-apiv3</groupId>
  <artifactId>wechatpay-java</artifactId>
  <version>0.2.14</version>
</dependency>

基于微信支付的关键配置参数,定义专用的配置类进行 WxPayConfig配置的绑定

@Data
@Component
@ConditionalOnProperty(value = "wx.pay.enable")
@ConfigurationProperties(prefix = "wx.pay")
public class WxPayConfig {
    //APPID
    private String appId;
    //mchid
    private String merchantId;
    //商户API私钥
    private String privateKey;
    //商户证书序列号
    private String merchantSerialNumber;
    //商户APIv3密钥
    private String apiV3Key;
    //支付通知地址
    private String payNotifyUrl;
    //退款通知地址
    private String refundNotifyUrl;
}

对应的配置统一放在 application-pay.yml文件

# fixme 替换成目标小程序信息
wx:
  pay:
    # tru

已加入二哥编程星球,即刻绑定星球编号解锁🔐

该文档仅「二哥编程星球」的VIP用户可见

二哥的编程星球内容包括:

1. 付费文档: 技术派、MYDB 等项目配套的 120+篇教程查看权限

2. 面试指南: 校招、社招的 40 万+字面试求职攻略

3. 智能助手: 无限期使用派聪明 AI 助手,已对接讯飞星火和 ChatGPT双通道,不用花 1 分钱

4. 专属问答: 向二哥 1v1 发起提问,内容不限于 offer 选择、学习路线、职业规划等

5. 简历修改: 提供简历修改服务,附赠星球 100+优质简历模板可供参考

6. 学习环境: 打造一个沉浸式的学习环境,有一种高考冲刺、大学考研的氛围


二哥的星球

》步骤①:微信扫描上方二维码,点击「加入知识星球」按钮

》步骤②:访问星球置顶帖球友必看: https://t.zsxq.com/11rEo9Pdu,获取项目配套文档的语雀访问地址和密码

已加入星球,绑定星球编号
删除提醒

确定删除《技术派接入微信支付全流程,全文干货满满,超值。》吗

2人已点赞

回复