收藏
回答

扫码提示开发版小程序已过期,是和appid有关吗 ?

生成二维码的接口代码如下:
其中envVersion值为develop,使用的appid是申请的小程序测试号的appid

public byte[] getWxaQrcode(SocialWxQrcodeReqDTO reqVO) {
    WxMaService service = getWxMaService(UserTypeEnum.MEMBER.getValue());
    try {
        return service.getQrcodeService().createWxaCodeUnlimitBytes(
                ObjUtil.defaultIfEmpty(reqVO.getScene(), SocialWxQrcodeReqDTO.SCENE),
                reqVO.getPath(),
                ObjUtil.defaultIfNull(reqVO.getCheckPath(), SocialWxQrcodeReqDTO.CHECK_PATH),
                envVersion,
                ObjUtil.defaultIfNull(reqVO.getWidth(), SocialWxQrcodeReqDTO.WIDTH),
                ObjUtil.defaultIfNull(reqVO.getAutoColor(), SocialWxQrcodeReqDTO.AUTO_COLOR),
                null,
                ObjUtil.defaultIfNull(reqVO.getHyaline(), SocialWxQrcodeReqDTO.HYALINE));
    } catch (WxErrorException e) {
        log.error("[getWxQrcode][reqVO({}) 获得小程序码失败]", reqVO, e);
        throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_QRCODE_ERROR);
    }
}


扫码时报错截图如下

回答关注问题邀请回答
收藏

3 个回答

  • 那一抹微笑😊穿透阳光
    那一抹微笑😊穿透阳光
    2025-12-01

    开发版本的二维码不是永久有效的,你把二维码换一下就可以了

    2025-12-01
    有用
    回复 3
    • 海鹰
      海鹰
      2025-12-01
      我是启动小程序后马上扫码的,不知道怎么还是提示已过期
      2025-12-01
      回复
    • 海鹰
      海鹰
      2025-12-01
      我知道了,应该是因为reqVO每次传的对象都是一样的,所以每次调用接口生成的是同一个小程序码
      2025-12-01
      回复
    • 海鹰
      海鹰
      2025-12-01
      还是有问题,我给scene参数值添加了时间戳保证每次是不一样的(String randomScene = reqVO.getScene() + "&t=" + System.currentTimeMillis();
      ),结果运行后扫码还是提示已过期
      2025-12-01
      回复
  • 启年
    启年
    2025-12-01

    没,开发版小程序的代码包是有有效期的,开发版比较适合生成了就立马扫码体验

    建议你用体验版小程序 和体验版的小程序码

    2025-12-01
    有用
    回复 3
    • 海鹰
      海鹰
      2025-12-01
      因为我需要先在本地测试,所以将env_version 设置为develop的,而且我是启动小程序后马上扫码的,不知道怎么还是提示已过期
      2025-12-01
      回复
    • 海鹰
      海鹰
      2025-12-01
      我知道了,应该是因为reqVO每次传的对象都是一样的,所以每次调用接口生成的是同一个小程序码
      2025-12-01
      回复
    • 海鹰
      海鹰
      2025-12-01
      还是有问题,我给scene参数值添加了时间戳保证每次是不一样的(String randomScene = reqVO.getScene() + "&t=" + System.currentTimeMillis();
      ),结果运行后扫码还是提示已过期
      2025-12-01
      回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-12-01
    有用
登录 后发表内容