Skip to content

微信公众号支付接入

微信公众号支付在 Pay 模块中对应 wx_pub 渠道,也常称为微信 JSAPI 支付。它适合用户在微信公众号、微信内置浏览器或 H5 页面中拉起微信支付的场景。RuoYi Office 当前通过统一的 Pay 应用、渠道和收银台能力承接该链路。

本页基于当前 PayChannelEnum、支付应用渠道配置表单、示例订单和支付订单实现整理。

适用场景

项目说明
渠道编码wx_pub
渠道名称微信 JSAPI 支付
典型终端微信公众号、微信内置浏览器
业务前提用户可获得微信 OpenID,商户号已绑定公众号 AppId
本地参考页面apps/web-antd/src/views/pay/demo/orderapps/web-antd/src/views/pay/order

如果只是验证 Pay 模块闭环,可先用模拟支付或支付宝沙箱;微信公众号支付需要微信商户、公众号 AppId、支付目录/授权域名等外部配置配合。

接入链路

示例订单仍使用 PayDemoOrderServiceImpl 中的 appKey = demo 创建支付单,收银台提交支付时选择 wx_pub 渠道。

渠道配置

在「支付管理 -> 支付应用」中找到目标应用,点击微信 JSAPI 渠道配置。当前前端配置字段来自 views/pay/app/data.ts

字段说明
微信 APPID公众号 AppId,需和商户号绑定
商户号微信支付商户号
API 版本根据商户平台和证书选择 V2 / V3 相关配置
商户密钥 / API V3 密钥用于签名和回调验签,严禁提交到仓库
apiclient_key.pem商户私钥证书内容
证书序列号微信支付 API v3 证书序列号
平台公钥 / 平台证书用于验签,按当前微信支付要求配置

生产环境还需要在微信公众平台/商户平台配置支付授权目录、回调域名和接口权限。配置完成后,建议先创建小额示例订单验证。

和普通支付接入的关系

微信公众号支付并不会改变 RuoYi Office 的业务接入方式:业务仍然创建 Pay 支付单,Pay 模块仍然生成支付订单、接收渠道通知并回调业务系统。差异只在渠道参数和终端拉起方式。

环节微信公众号支付关注点
创建支付单merchantOrderId、金额、过期时间仍由业务方控制
提交支付渠道编码为 wx_pub
用户身份通常需要微信 OpenID 参与 JSAPI 支付
回调验签依赖微信平台证书、公钥或 API v3 配置
业务回调仍走业务系统的支付成功通知接口

排查清单

现象优先检查
收银台无 JSAPI 渠道支付应用下 wx_pub 渠道是否配置并启用
拉起支付失败公众号 AppId 与商户号绑定关系、OpenID、支付授权目录
回调验签失败API v3 Key、平台证书/公钥、证书序列号是否匹配
支付成功但业务未更新PayNotifyJob、业务回调接口、支付单状态和金额校验
只能沙箱/测试失败微信支付通常不等同支付宝沙箱,需真实商户能力和白名单配置

二次开发建议

  1. 会员端或公众号端要明确 OpenID 获取和登录用户绑定关系。
  2. 同一商户多公众号场景,建议用不同支付应用或清晰的渠道配置隔离。
  3. 回调接口必须支持幂等,微信可能重复通知。
  4. 微信证书和密钥应通过安全配置中心管理,不要写入前端或提交仓库。

下一步

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版