当前位置:网站首页>阿里云发送短信验证码

阿里云发送短信验证码

2022-07-05 09:02:00 我要用代码向我喜欢的女孩表白

1.购买阿里云短信以及模板

2.手机验证码生成

3.阿里云发送短信验证码
依赖

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>dysmsapi20170525</artifactId>
            <version>2.0.10</version>
        </dependency>

代码(复制即用)

添加自己的id和secret后即可

package com.example.etf.story.service;


import com.aliyun.teaopenapi.models.Config;
import com.aliyun.tea.*;

import com.aliyun.dysmsapi20170525.models.*;

import com.aliyun.teautil.models.*;

import java.util.Random;

public class AliSMS {


    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                // 您的 AccessKey ID
                .setAccessKeyId("ss")
                // 您的 AccessKey Secret
                .setAccessKeySecret("xxx");
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new com.aliyun.dysmsapi20170525.Client(config);
    }

    //生成随机数

    /**
     *
     * @param strSource//加字母和随机数装入集合,原始随机字符串,可自己定义
     * @param num    //生成几位的验证码,可自己定义
     * @return
     */
    public static String suijiNum(String strSource,int num){
        Random random = new Random();
        int maxLength=strSource.length()-1;//随机的索引最大程度,因为索引从0开始,所以最大值的索引 是长度-1
        String[] strSources = strSource.split("");//切分字符串为可选的字符数组,用于索引选取
        //最终的验证码进行拼接,stringBuffer只创建一个对象节省内存,并且速度快,这个场景不需要线程安全
        StringBuffer appendStrEnd = new StringBuffer();
        for (int i = 0; i < num; i++) {
            int suijiIndex = random.nextInt(maxLength);//生成索引,索引位你的原始字符串中的一个字符的位置
            String strAlone = strSources[suijiIndex];//获取字符串中的单个字符值
            appendStrEnd.append(strAlone);
        }
        return appendStrEnd.toString();

    }
    public static void SendSMSByAli(String phone,String code) throws Exception {
        com.aliyun.dysmsapi20170525.Client client = AliSMS.createClient("accessKeyId", "accessKeySecret");
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setPhoneNumbers(phone)
                .setSignName("learning呀朋友")//签名名称【注意别写成模板名称】
                .setTemplateCode("SMS_243991108")//模板id
                .setTemplateParam("{\"code\":\""+code+"\"}");
        RuntimeOptions runtime = new RuntimeOptions();
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.sendSmsWithOptions(sendSmsRequest, runtime);
        } catch (TeaException error) {
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }



}

原网站

版权声明
本文为[我要用代码向我喜欢的女孩表白]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_38403590/article/details/125596649