收藏
回答

重置AppSecret(小程序秘钥)导致收不到验证码短信怎么解决?

我是通过云函数的方式,采用sendSms()方法,发送手机验证码。以前使用一直正常,小程序要上线了,为安全起见,重置重置AppSecret,结果出现问题了。

过程再现:

扫码登录微信小程序管理后台----开发管理----开发设置----重置AppSecret,然后我做了两件事:

1、代码中搜索旧的key,对应替换成新的key。

2、云函数重新上传部署依赖。

再测试时,发现手机收不到验证码短信了。

初步检查情况:

1、用新的AppSecret生成Token,成功正常。说明新密码已经生效了。

2、API Explorer调试SendSms,手机能正常收到验证码短信。说明后台业务通道没问题。

3、也尝试对云函数重新安装如下两个依赖,并重新上传云函数部署依赖。

npm install tencentcloud-sdk-nodejs-sms --save

npm uninstall tencentcloud-sdk-nodejs-sms --save

4、从云开发云后台查看,函数调用成功,但提示签名错误"code":"AuthFailure.SignatureFailure",如下图:

5、如果自己填上验证码继续运行小程序业务流程,通过”用于提交的云函数“,可以正常提交表单,将数据存入云数据集合。再一次证明云侧验证没问题。

问提:

这个签名错误怎么解决呢?恳请大侠指点!

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

3 个回答

  • 千
    发表于移动端
    09-10
    1 确认你的云函数服务账户具有足够的权限去调用短信服务API。权限不足可能会导致签名失败。 2 如果是将AppSecret作为环境变量存储,并在云函数中读取的话,确保环境变量已经被更新为新的AppSecret,并且在云函数中有正确的读取逻辑。
    09-10
    有用
    回复 3
    • 海蓝
      海蓝
      09-12
      权限足够,环境变量不涉及小程序密钥AppSecret
      09-12
      回复
    • 海蓝
      海蓝
      09-12
      话又说回来,怎么检测调用权限够不够?
      09-12
      回复
    • 海蓝
      海蓝
      09-12
      谢谢 @千 的关注和回复。在腾讯技术团队的指导下,最终发现是个低级错误:在发现改错云侧秘钥(API秘钥,而非小程序秘钥)而复原粘贴时多了个尾巴,导致API密钥错误----最终显示为签名错误。现在问题已解决,小程序可以正式上线了。
      09-12
      回复
  • 海蓝
    海蓝
    09-06

    或者换个方式提问:

    微信小程序在重置AppSecret(小程序秘钥)后,需要做哪些相应处理才能避免身份验证或签名错误的坑?

    09-06
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    09-06

    只是巧合吧

    09-06
    有用
    回复
登录 后发表内容