uni-app uniCloud.sendSms一直报错超时

uni-app uniCloud.sendSms一直报错超时

操作步骤:

  • 请求短信

预期结果:

  • 正常获取到短信

实际结果:

  • 超时

bug描述:

2022年5月16日 0:05
uniCloud.sendSms一直报错超时
errCode: 3004,
code: 3004,
errMsg: ‘短信发送失败:短信发送失败:Response timeout for 5000ms, GET https://openapi.dcloud.net.cn/uniSms/code -1 (connected: true, keepalive socket: false, agent status: {“createSocketCount”:1,“createSocketErrorCount”:0,“closeSocketCount”:1,“errorSocketCount”:0,“timeoutSocketCount”:0,“requestCount”:0,“freeSockets”:{},“sockets”:{},“requests”:{}}, socketHandledRequests: 1, socketHandledResponses: 0)’


更多关于uni-app uniCloud.sendSms一直报错超时的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

appid 或者短信的 smsKey 私信发一下

更多关于uni-app uniCloud.sendSms一直报错超时的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uniCloud.sendSms 发送短信时,如果一直报错超时,可能是由于以下几个原因导致的。你可以根据以下步骤进行排查和解决:

1. 检查网络连接

  • 确保你的设备或服务器网络连接正常,能够访问外网。
  • 如果是在本地开发环境中,检查是否有网络代理或防火墙阻止了请求。

2. 检查云函数配置

  • 确保你已经在 uniCloud 控制台中正确配置了短信服务(如阿里云、腾讯云等)。

  • 检查云函数的超时时间设置,默认情况下,云函数的超时时间为 5 秒。如果短信服务响应较慢,可以适当增加超时时间。

    cloudfunctions 目录下的 config.json 文件中,可以设置 timeout 参数:

    {
      "timeout": 10000 // 设置为 10 秒
    }
    

3. 检查短信服务商配置

  • 确保你在短信服务商(如阿里云、腾讯云)的配置正确,包括 AccessKeyIdAccessKeySecretSignNameTemplateCode 等。
  • 检查短信服务商是否有发送频率限制或额度不足。

4. 检查代码逻辑

  • 确保你在调用 uniCloud.sendSms 时传递的参数正确,包括 phoneNumbertemplateIddata 等。

  • 检查是否有异步操作未正确处理,导致超时。

    示例代码:

    uniCloud.sendSms({
      phoneNumber: '12345678901', // 手机号
      templateId: 'SMS_123456789', // 短信模板ID
      data: {
        code: '123456' // 短信验证码
      }
    }).then(res => {
      console.log('短信发送成功', res);
    }).catch(err => {
      console.error('短信发送失败', err);
    });
回到顶部