微信小程序码
这篇解决什么
用户端怎么生成不限制的小程序码、scene 和 path 怎么传。读完能对上 POST /app-api/member/social-user/wxa-qrcode,不要去会员中心找管理页。
默认端口 48080。先完成 微信小程序登录。社交客户端见 三方登录。
示意图:会员模块只暴露 HTTP。真正调微信的是 system 社交客户端。
从哪接
管理端 SocialClientController 没有小程序码接口。PC views/member/ 也没有出码页。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 用户端 | @RequestMapping("/member/social-user") | ruoyi-office/yudao-module-member/.../controller/app/social/AppSocialUserController.java |
| 出码 | POST /wxa-qrcode | 返回图片 Base64 |
| 实现 | createWxaCodeUnlimitBytes | SocialClientServiceImpl#getWxaQrcode |
| 客户端 | 会员 + 类型 34 | system_social_client |
| 环境 | yudao.wxa-code.env-version | yudao-server 的 yaml |
社交类型是 WECHAT_MINI_PROGRAM = 34。出码时按 UserTypeEnum.MEMBER 取 WxMa,请求体不用再传 socialType。工程里没有第二条「有限小程序码」接口。
当前 ruoyi-office-uniapp 没有调用 /wxa-qrcode。调用方一般是用户端小程序(海报、分销页),要自己接。
字段
AppSocialWxaQrcodeReqVO / SocialWxQrcodeReqDTO:
| 名称 | 说明 | 仓库路径 |
|---|---|---|
scene | 场景值,参数只放这里 | DTO @NotEmpty |
path | 页面路径,不能带 query | 同上 |
width | 默认 430 | 同上 |
autoColor / hyaline / checkPath | 颜色、透明底、校验页面 | 同上 |
env-version:代码默认 release。开发配置常写成 develop,也可 trial。配错了扫出来是另一套代码包。
接口 @PermitAll。要用对的小程序 appId,先在三方应用建「会员 + 微信小程序」。
path 不要拼参数
微信无限码规定参数进 scene。path 写成 pages/goods/index?id=1 会失败或扫不开。
和登录共用客户端
登录走 POST /member/auth/weixin-mini-app-login。出码不绑用户、不发 Token,只借同一套 WxMa 配置。
示意图:按 getWxaQrcode 的真实顺序。
