uni-app 重新验证手机号提示短信发送失败 请重新发送

发布于 1周前 作者 songsunli 来自 uni-app

uni-app 重新验证手机号提示短信发送失败 请重新发送

操作步骤

昨天晚上11点和今天早上9点多测试都出现这个问题

预期结果

可以发送短信

实际结果

短信发送失败,请重新发送

bug描述

app云打包,需要重新验证手机号。开发者后台–账户信息,验证手机号,点击发送短信一直报错。

图片

6 回复

我的也是这个问题,一直到现在都没有修复。


多久了,那后面如何打包了。

回复 c***@163.com: 等官方修复,没有办法。

回复 不渝: 刚测试了下。修复好了

已修复

针对您提到的uni-app中重新验证手机号时提示短信发送失败的问题,这通常涉及到后端短信服务接口的调用以及前端错误处理逻辑。以下是一个简化的代码示例,展示了如何在uni-app中实现短信验证码的重新发送功能,并处理发送失败的情况。

后端接口(假设使用Node.js + Express)

首先,后端需要提供一个发送短信验证码的API。这里使用了一个假设的短信服务提供商SDK。

const express = require('express');
const app = express();
const smsSdk = require('some-sms-sdk'); // 假设的短信服务SDK

app.post('/send-sms-code', async (req, res) => {
  const { phoneNumber } = req.body;

  try {
    const code = Math.floor(100000 + Math.random() * 900000); // 生成6位验证码
    // 假设smsSdk.sendSms有发送短信的方法,需要传入手机号和验证码
    await smsSdk.sendSms(phoneNumber, `您的验证码是:${code}`);
    res.status(200).json({ success: true });
  } catch (error) {
    console.error('短信发送失败:', error);
    res.status(500).json({ success: false, message: '短信发送失败,请重新发送' });
  }
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

前端uni-app代码

在uni-app中,我们可以使用uni.request来调用上述API,并处理发送失败的情况。

// 假设这是页面中的一个方法,用于发送短信验证码
async function sendSmsCode(phoneNumber) {
  try {
    const response = await uni.request({
      url: 'http://localhost:3000/send-sms-code', // 后端API地址
      method: 'POST',
      data: { phoneNumber },
    });

    if (response.data.success) {
      uni.showToast({ title: '验证码发送成功', icon: 'success' });
    } else {
      uni.showToast({ title: response.data.message || '验证码发送失败', icon: 'none' });
      // 可以设置一个倒计时,防止用户频繁点击发送
      setTimeout(() => {
        // 重新启用发送按钮或相关逻辑
      }, 60000); // 例如,60秒后重新启用
    }
  } catch (error) {
    console.error('请求失败:', error);
    uni.showToast({ title: '网络错误,请稍后重试', icon: 'none' });
  }
}

上述代码示例展示了如何在uni-app中处理短信验证码的发送,并在发送失败时给出相应的提示。实际项目中,您可能需要根据具体的短信服务提供商和业务需求进行调整。

回到顶部