员工邀请二维码生成时使用的是微信的 release 环境,但当前 AppID 没有已发布的线上版本。
代码证据:
server/index.js:88默认WECHATMINICODEENVVERSION = 'release'- 员工码固定跳转
pages/staff-bind/staff-bind server/index.js:2483设置check_path: false,所以即使页面未发布,二维码仍可能生成;扫码时才提示“小程序尚未发布”- 当前客户版 AppID
wx262ff9e06a893542在项目文档中标注为测试号,测试号通常没有正式发布版本
另外,旧工程使用的是另一个 AppID:wx0a54a829602d737b。如果服务器 .env 中的 WECHAT_APPID 与当前上传的小程序 AppID 不一致,也会出现同样问题。
处理方式:
- 在对应 AppID 的微信开发者平台上传包含
pages/staff-bind/staff-bind的代码。 - 提交审核并发布正式版本。
- 确认服务器
WECHAT_APPID与当前小程序project.config.json中的 AppID 一致。 - 重启后端并重新生成员工邀请二维码。
仅测试时可以将 WECHATMINICODEENVVERSION 改为 trial,但扫码人员必须加入体验成员,不能作为正式绑定方案。
备案未通过、还没有正式发布版本时,后台生成的小程序码不能继续指向 release;临时体验应改为:
WECHAT_MINI_CODE_ENV_VERSION=trialtrial 对应体验版,release 对应正式版。体验版只能由已加入小程序项目成员/体验成员、且有体验权限的微信号扫码使用,普通员工账号无法靠 trial 绕过发布限制。(cloud.tencent.com)
当前代码默认就是 release:[server/index.js:82](C:\\Users\\Administrator\\Documents\\微信公众号开发-邀约\\server\\index.js),员工邀请二维码会继承这个配置:[server/index.js:2999](C:\\Users\\Administrator\\Documents\\微信公众号开发-邀约\\server\\index.js)。因此需要:
- 上传代码并在微信后台设置为体验版;
- 服务端环境设置
WECHATMINICODEENVVERSION=trial; - 重启后端;
- 把扫码微信加入体验成员;
- 重新生成员工绑定二维码。
备案通过并正式发布后,再改回 release。
const WECHAT_MINI_CODE_ENV_VERSION = String(process.env.WECHAT_MINI_CODE_ENV_VERSION || 'release')
const WECHAT_MINI_CODE_ENV_VERSION = String(process.env.WECHAT_MINI_CODE_ENV_VERSION || 'trial')

