当前位置: 首页 > article >正文

如何调用短信服务接口给自己的网站设置短信验证码功能

步骤 1: 注册并认证阿里云账户

  1. 登录 阿里云官网 并注册一个账户。
  2. 完成账户实名认证,确保账户处于正常状态。

步骤 2: 开通短信服务

  1. 登录到阿里云控制台,搜索并选择 短信服务(短信服务通常位于产品与服务 > 消息与通知 > 短信服务)。
  2. 开通短信服务,并选择 国内短信 服务。

步骤 3: 配置短信签名和模板

  1. 短信签名:短信签名是你在发送短信时的发件人名称,如“XXX平台”。你需要在阿里云控制台提交签名申请,并等待审核通过。
  2. 短信模板:设置短信的具体内容(例如:“您的验证码是123456,5分钟内有效。”)。创建并提交模板进行审核。

步骤 4: 获取 AccessKey 和 Secret

  1. 登录阿里云控制台,进入 AccessKey 管理,获取 AccessKey ID 和 AccessKey Secret,这是你调用阿里云 API 时所需的凭证。

步骤 5: 下载并导入阿里云 SDK

为了方便使用阿里云的 API,阿里云提供了 Java SDK。你可以通过 Maven 来引入依赖。

 

步骤 6: 编写 Java 代码实现短信验证码功能

设置阿里云的 AccessKey ID 和 AccessKey Secret 

public class SmsService {
    private static final String ACCESS_KEY_ID = "你的AccessKeyID";
    private static final String ACCESS_KEY_SECRET = "你的AccessKeySecret";
    private static final String REGION_ID = "cn-hangzhou"; // 短信服务所在的区域
    private static final String SIGN_NAME = "你的短信签名"; // 短信签名
    private static final String TEMPLATE_CODE = "你的短信模板Code"; // 短信模板Code

    public static Client createClient() throws Exception {
        // 设置阿里云的 API 凭证
        Config config = new Config()
                .setAccessKeyId(ACCESS_KEY_ID)
                .setAccessKeySecret(ACCESS_KEY_SECRET);
        
        // 创建一个短信客户端
        return new Client(config);
    }

    public static void sendSms(String phoneNumber, String verificationCode) {
        try {
            Client client = createClient();

            // 创建发送短信请求对象
            SendSmsRequest sendSmsRequest = new SendSmsRequest()
                    .setPhoneNumbers(phoneNumber)  // 手机号码
                    .setSignName(SIGN_NAME)         // 短信签名
                    .setTemplateCode(TEMPLATE_CODE) // 短信模板Code
                    .setTemplateParam("{\"code\":\"" + verificationCode + "\"}");  // 短信内容参数

            // 发送短信
            SendSmsResponse response = client.sendSms(sendSmsRequest);
            
            // 输出返回结果
            System.out.println("Response: " + response.getBody().getCode());
        } catch (TeaException e) {
            System.out.println("阿里云 API 错误:" + e.getMessage());
        } catch (Exception e) {
            System.out.println("发生错误:" + e.getMessage());
        }
    }

    // 生成六位数的验证码
    public static String generateVerificationCode() {
        int code = (int) ((Math.random() * 9 + 1) * 100000); // 生成 6 位数验证码
        return String.valueOf(code);
    }

    public static void main(String[] args) {
        String phoneNumber = "用户的手机号"; // 目标手机号
        String verificationCode = generateVerificationCode(); // 生成验证码
        sendSms(phoneNumber, verificationCode);  // 发送验证码
    }
}

步骤 7: 验证验证码

  1. 当用户提交验证码时,后端接收到验证码并与之前生成的验证码进行对比。
  2. 验证码通常具有过期时间(如5-10分钟),所以需要在后端设置过期时间检查。

http://www.kler.cn/a/507112.html

相关文章:

  • 【redis】redis-cli命令行工具的使用
  • 回归预测 | MATLAB实SVM支持向量机多输入单输出回归预测
  • 【Elasticsearch】全文搜索与相关性排序
  • Linux:认识Shell、Linux用户和权限
  • 机器学习第一道菜(一):线性回归的理论模型
  • 使用 Charles 调试 Flutter 应用中的 Dio 网络请求
  • IntelliJ IDEA:享受高效的 JAVA 开发
  • 苹果电脑怎么清理后台,提升苹果电脑运行速度
  • 如何在浏览器前端运行Python程序
  • C#与Vue2上传下载Excel文件
  • 《Keras 3 神经网络紧凑型卷积转换器(Transformers)》
  • 【python小知识】安装ta-lib遇到的问题
  • RabbitMQ中有哪几种交换机类型?
  • 网络安全 | 什么是威胁情报?
  • Oracle分析工具-Logminer
  • 面试的问题
  • HTML中link的用法
  • Hive中没有超级管理员,如何进行权限控制
  • VS Code--常用的插件
  • 两种方法,加密excel打开密码
  • C#中的元组(Tuples)
  • 【airtest】自动化入门教程Poco元素定位
  • 汽车网络信息安全-ISO/SAE 21434解析(上)
  • python-leetcode-同构字符串
  • 软考高级5个资格、中级常考4个资格简介及难易程度排序
  • 响应式 Vue 页面布局组件-Element Plus