微信小程序支付接入
微信小程序支付在 Pay 模块中对应 wx_lite 渠道,适合 UniApp 小程序、原生微信小程序或嵌入小程序场景。RuoYi Office 当前支付模块已经在渠道枚举和支付应用配置中预留该能力。
本页结合 PayChannelEnum.WX_LITE、支付渠道配置表单和示例订单链路说明接入要点。
适用场景
| 项目 | 说明 |
|---|---|
| 渠道编码 | wx_lite |
| 渠道名称 | 微信小程序支付 |
| 典型终端 | 微信小程序、UniApp 微信小程序端 |
| 业务前提 | 小程序 AppId 已绑定微信支付商户号,前端可获得用户 OpenID |
| 相关页面 | 支付应用、支付示例订单、支付订单 |
小程序支付和微信公众号支付同属微信支付,但 AppId、终端 API、授权域名和前端拉起方式不同,不建议混用同一个渠道配置。
接入链路
管理端示例订单可以帮助验证后端 Pay 单创建、渠道配置和回调逻辑;真正的小程序拉起支付需要移动端页面配合。
渠道配置要点
微信小程序支付配置字段与其它微信渠道共用一套表单:
| 字段 | 说明 |
|---|---|
| 微信 APPID | 小程序 AppId,不是公众号 AppId |
| 商户号 | 绑定该小程序的微信支付商户号 |
| API V3 密钥 | 微信支付 API v3 回调解密和签名相关配置 |
| 商户私钥证书 | apiclient_key.pem 内容 |
| 证书序列号 | 商户 API 证书序列号 |
| 微信平台公钥 / 证书 | 用于验签 |
配置前请在微信商户平台确认“小程序 AppId 与商户号绑定”已经完成,否则即使本地渠道保存成功,支付时也可能被微信拒绝。
和 UniApp 移动端的关系
RuoYi Office 移动端工程位于:
text
ruoyi-office-uniapp/如果从移动端接入小程序支付,建议遵循:
- 移动端创建或选择业务订单。
- 后端返回 Pay 支付单编号或支付参数。
- 移动端调用后端提交支付接口,渠道传
wx_lite。 - 移动端根据 Pay 返回的参数调用微信小程序支付 API。
- 后端通过 Pay 回调更新业务单,移动端只负责查询最终状态。
不要只依赖小程序前端的支付成功回调来更新业务单,最终状态必须以后端 Pay 通知和业务校验为准。
常见问题
| 现象 | 优先检查 |
|---|---|
| 小程序端无法拉起支付 | AppId、OpenID、商户号绑定关系、支付参数是否完整 |
| 提示商户号无权限 | 微信商户平台产品权限、AppId 绑定状态 |
| 支付成功但业务单未更新 | Pay 回调、PayNotifyJob、业务回调接口幂等校验 |
| 公众号支付可用但小程序失败 | 是否误用了公众号 AppId 或 wx_pub 渠道 |
| 本地测试困难 | 小程序支付通常需要真实微信环境和合法域名,后端回调需公网可访问 |
二次开发建议
- 小程序支付相关业务页面应优先放在
ruoyi-office-uniapp对应业务分包中。 - 后端业务单状态更新要和 PC 管理端、移动端查询保持一致。
- 多小程序、多租户场景建议按支付应用隔离配置。
- 证书和密钥不要写入移动端包体。
