当前位置:网站首页>阿里云发送短信验证码
阿里云发送短信验证码
2022-07-05 09:02:00 【我要用代码向我喜欢的女孩表白】
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);
}
}
}
边栏推荐
- [牛客网刷题 Day4] JZ55 二叉树的深度
- Halcon clolor_ pieces. Hedv: classifier_ Color recognition
- Applet (subcontracting)
- 容易混淆的基本概念 成员变量 局部变量 全局变量
- Ros-11 common visualization tools
- Characteristic Engineering
- [牛客网刷题 Day4] JZ35 复杂链表的复制
- fs. Path module
- Introduction Guide to stereo vision (5): dual camera calibration [no more collection, I charge ~]
- C [essential skills] use of configurationmanager class (use of file app.config)
猜你喜欢
C# LINQ源码分析之Count
It cold knowledge (updating ing~)
3D reconstruction open source code summary [keep updated]
Ros-11 common visualization tools
编辑器-vi、vim的使用
Use and programming method of ros-8 parameters
IT冷知识(更新ing~)
Introduction Guide to stereo vision (2): key matrix (essential matrix, basic matrix, homography matrix)
Introduction Guide to stereo vision (6): level constraints and polar correction of fusiello method
微信H5公众号获取openid爬坑记
随机推荐
Beautiful soup parsing and extracting data
Attention is all you need
[beauty of algebra] singular value decomposition (SVD) and its application to linear least squares solution ax=b
Golang foundation - the time data inserted by golang into MySQL is inconsistent with the local time
Characteristic Engineering
Use and programming method of ros-8 parameters
Blue Bridge Cup provincial match simulation question 9 (MST)
Nodemon installation and use
520 diamond Championship 7-4 7-7 solution
RT-Thread内核快速入门,内核实现与应用开发学习随笔记
location search 属性获取登录用户名
Illustrated network: what is gateway load balancing protocol GLBP?
Luo Gu p3177 tree coloring [deeply understand the cycle sequence of knapsack on tree]
Applet (global data sharing)
Mengxin summary of LCs (longest identical subsequence) topics
The location search property gets the login user name
Meta tag details
[daiy4] copy of JZ35 complex linked list
Blogger article navigation (classified, real-time update, permanent top)
Codeforces Round #648 (Div. 2) E.Maximum Subsequence Value