Skip to content

微信支付接入路线

本文介绍接入微信支付前需要完成的准备工作,以及 Native Pay、JSAPI Pay、Code Pay 等支付方式的区别和推荐接入顺序。

1. 整体流程

plaintext
注册微信公众号(必须是服务号)


申请微信支付商户号


绑定公众号与商户号


下载商户 API 证书


配置 API v3 Key


Spring Boot 集成 wx-java-pay


根据业务场景选择支付方式

        ├── Native Pay
        ├── JSAPI Pay
        ├── Code Pay
        └── Refund

完成以上步骤后,就可以开始开发具体的支付功能。

2. 第一步:注册微信公众号

网址:https://mp.weixin.qq.com/

推荐注册 微信公众号服务号

原因:

  • 支持 JSAPI 支付
  • 支持网页授权(OAuth)
  • 可以作为后续 H5 功能入口
  • 可与微信支付商户号绑定

如果仅做 Native Pay 或 Code Pay 的技术验证,公众号参与较少;但从长期来看,仍建议直接使用服务号。

3. 第二步:申请微信支付商户号

网址:https://pay.weixin.qq.com/

微信公众号本身不能收款。

真正负责资金结算的是 微信支付商户号(MCH)

申请完成后,会得到:

  • 商户号(mchid)
  • 商户平台后台
  • API 管理能力
  • 支付产品开通入口

微信支付商户号通常要求微信公众号主体已完成微信认证(需要提供营业执照),认证费用目前为每年 300 元。

4. 第三步:绑定公众号与商户号

进入微信支付商户平台,将公众号绑定到商户号。

绑定完成后:

  • JSAPI 可以获取对应公众号用户的 openid
  • Native Pay、Code Pay 也可以统一使用同一个商户号

一般一个公众号对应一个商户号即可。

5. 第四步:下载商户 API 证书

在商户平台创建 API 证书后,会下载一个压缩包,例如:

plaintext
xxxx_cert.zip

解压后通常包含:

plaintext
apiclient_key.pem
apiclient_cert.pem

后续 Spring Boot 配置需要使用这些文件。

6. 第五步:配置 API v3

微信支付 V3 接口需要配置:

yaml
wx:
  pay:
    app-id:
    mch-id:
    api-v3-key:
    private-key-path:
    private-cert-path:
    cert-serial-no:
    public-key-path:
    public-key-id:

配置完成后,基本具备调用微信支付 API 的能力。

7. 第六步:选择支付方式

不同支付方式适用于不同业务场景。

支付方式推荐场景用户如何付款最小技术验证是否需要公网域名是否需要公众号 OAuth推荐程度
Native PayPC 网站扫码支付用户扫码商户二维码⭐⭐⭐⭐⭐
Code Pay收银、扫码枪、POS商户扫码用户付款码⭐⭐⭐⭐⭐
JSAPI Pay公众号/H5微信内拉起支付⭐⭐⭐⭐
H5 Pay微信外浏览器浏览器跳转支付⭐⭐⭐
APP PayAndroid/iOS AppApp 内支付??⭐⭐⭐

为什么推荐先学习 Native Pay?

Native Pay 的优点:

  • ✔ 不依赖 OAuth
  • ✔ 不依赖 openid
  • ✔ 前端最简单
  • ✔ 最容易调试
  • ✔ 最容易理解微信支付流程
  • ✔ 开通门槛低,可在微信支付商户平台「产品中心」中直接申请开通(符合商户主体和产品要求时)

踩坑记录

我一开始一直以为 Native Pay 的开通流程会比较复杂,因此迟迟没有尝试。

真正操作时才发现,在我的商户号下,只需要进入微信支付商户平台 「产品中心」,申请开通 Native Pay,并完成密码和手机号验证,很快就完成了。

如果你的商户主体符合微信支付的开通条件,建议尽早尝试,不要因为主观认为"开通很麻烦"而耽误验证进度。

实验结论

不要先猜流程复杂与否,先到商户平台实际操作一遍。很多时候,完成一次真实验证,比阅读大量资料更有效。

因此建议作为整个微信支付学习的第一站。

为什么第二个学习 Code Pay?

因为它已经不需要二维码,但开始涉及支付结果处理、USERPAYING、查单等企业收银场景。

8. 推荐学习顺序

推荐按照下面的顺序学习。

第一阶段:Native Pay

可参考微信 Native Pay 最小接入指南

最容易验证支付链路。

只需要:

  • 微信支付商户号
  • Spring Boot
  • wx-java-pay

即可生成二维码进行支付测试。

推荐先完成:

  • 创建订单
  • 查询订单
  • 支付回调

第二阶段:Code Pay

可参考微信 Code Pay 最小接入指南

完成付款码支付。

特点:

  • 商户主动扫码
  • 不需要域名
  • 不需要 OAuth
  • 可以直接使用 JUnit 调试

推荐完成:

  • auth_code 扣款
  • USERPAYING 处理
  • 查询订单
  • 支付回调

第三阶段:JSAPI Pay

可参考微信 JSAPI Pay 最小接入指南

JSAPI 是公众号内最常见的支付方式。

相比前两种,需要额外配置:

  • 网页授权
  • OAuth 获取 openid
  • 支付授权目录
  • HTTPS 域名

整体流程明显更加复杂。

建议已经熟悉微信支付接口后,再开始接入 JSAPI。

第四阶段:退款

退款通常包括:

  • 申请退款
  • 查询退款
  • 退款回调

退款建议最后开发。

因为退款依赖已经存在的支付订单。

9. 推荐阅读顺序

plaintext
准备工作(本文)


Native Pay 最小接入指南


Code Pay 最小接入指南


JSAPI Pay 最小接入指南


退款最小接入指南


退款回调


常见问题汇总

按照以上顺序学习,可以逐步完成整个微信支付体系的接入。

10. 常见问题

没有公众号,没有域名,可以测试吗?

通常不可以。想要调用微信支付的接口,必须要有微信支付商户号。而开通商户号功能时要示一个已通过认证的服务号。

一定要先做 JSAPI 吗?

不用。

建议先完成 Native Pay 或 Code Pay。

这两种方式更容易理解微信支付的整体流程。

推荐先开发哪一种?

如果第一次接触微信支付,推荐顺序:

plaintext
Native Pay

Code Pay

JSAPI Pay

Refund

这样可以以最低的学习成本,逐步掌握微信支付各类接口的使用方式。

在线体验

如果你只是想快速体验微信支付,而暂时不想申请公众号、商户号或搭建开发环境,可以直接体验小刘实验室提供的在线示例。

目前已开放体验:

  • ✅ Native Pay(PC 显示付款二维码,手机微信扫码支付)
  • ✅ Code Pay(手机微信付款码支付)
  • ✅ JSAPI Pay(公众号网页内支付)

欢迎关注公众号,在菜单中进入 「实验室」,即可在线体验各类支付方式,并查看对应的开发文档与示例代码。

小刘实验室公众号

在线体验环境仅用于学习和验证微信支付接入流程,请勿用于生产业务。