Skip to content

微信公众号支付接入 ​

这篇解决什么 ​

在应用下打开 wx_pub、填公众号商户参数、在微信内置浏览器里带 openid 调起 JSAPI。读完能对上 WxPubPayClient,以及它和小程序支付差在哪。

默认端口 48080。先完成 支付功能设计。公众号登录、openid 先看 三方登录。

示意图:预下单在服务端。调起必须在微信里,用公众号粉丝的 openid。

从哪配 ​

名称说明仓库路径
模块微信客户端ruoyi-office/yudao-module-pay/
渠道码wx_pubPayChannelEnum.WX_PUB
客户端JSAPI,TradeType JSAPIWxPubPayClient
配置和小程序共用WxPayClientConfig
小程序渠道继承公众号客户端,只换编码WxLitePayClient
回调POST /pay/notify/order/{channelId}PayNotifyController

WxPayClientConfig 字段和小程序篇相同:公众号 appId、商户号、v2 / v3、证书。这里的 appId 必须是公众号,不是小程序。

示例订单仍可用应用 demo。PC 收银台选 wx_pub 通常调不起来,因为管理端用户没有公众号 openid。联调要在微信里打开业务页,先完成网页授权再提交渠道。

和 wx_lite 的差别 ​

下单协议都是 JSAPI。WxLitePayClient 直接继承 WxPubPayClient,只是渠道码改成 wx_lite。差别在用户身份:

  • wx_pub:公众号网页授权拿到的 openid
  • wx_lite:小程序 wx.login 拿到的 openid

两套 openid 不能混用。商户平台也要分别绑定公众号 AppId 和小程序 AppId。

三个 AppId 不要混

公众号 AppId、小程序 AppId、开放平台移动应用 AppId 不是同一个。wx_pub 填公众号那个。社交登录配置也要是同一套,否则 openid 对不上商户。

渠道通知进 yudao.pay.order-notify-url/{channelId}。本机地址微信打不进来,要换成公网。没穿透时先用 模拟支付。

H5 在微信外是 wx_wap,扫码是 wx_native,本篇不展开。

配置与操作 ​

走 应用信息(1126,/pay/app)开通 wx_pub。填公众号 appId、商户号 mchId、API v2 或 v3 和证书。appId 必须是公众号那个,不要填小程序。

调起必须在微信内置浏览器,带网页授权拿到的 openid。两套 openid 不能和 wx_lite 混用。PC 示例单用户是管理员,没有公众号 openid,管理端选 wx_pub 通常调不起来。通知 POST /pay/notify/order/{channelId} 要公网。开启见 支付功能设计。

支付应用

本系统截图:支付管理 → 应用信息。wx_pub 在应用下开渠道,不是单独菜单。

接入示例

本系统截图:支付&退款案例。渠道配好后,真正调起要在微信内置浏览器完成。

相关篇 ​

联系我们

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

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版