当前位置:网站首页>阿里云发送短信验证码
阿里云发送短信验证码
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);
}
}
}
边栏推荐
- RT-Thread内核快速入门,内核实现与应用开发学习随笔记
- Redis实现高性能的全文搜索引擎---RediSearch
- Add discount recharge and discount shadow ticket plug-ins to the resource realization applet
- Driver's license physical examination hospital (114-2 hang up the corresponding hospital driver physical examination)
- C#图像差异对比:图像相减(指针法、高速)
- [daiy4] jz32 print binary tree from top to bottom
- 微信H5公众号获取openid爬坑记
- 多元线性回归(梯度下降法)
- [technical school] spatial accuracy of binocular stereo vision system: accurate quantitative analysis
- 优先级队列(堆)
猜你喜欢

Blogger article navigation (classified, real-time update, permanent top)

Solution to the problems of the 17th Zhejiang University City College Program Design Competition (synchronized competition)

资源变现小程序添加折扣充值和折扣影票插件

The combination of deep learning model and wet experiment is expected to be used for metabolic flux analysis

Applet (use of NPM package)

Halcon: check of blob analysis_ Blister capsule detection

Summary and Reflection on issues related to seq2seq, attention and transformer in hands-on deep learning

IT冷知识(更新ing~)

嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!

C# LINQ源码分析之Count
随机推荐
[牛客网刷题 Day4] JZ35 复杂链表的复制
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
Latex improve
什么是防火墙?防火墙基础知识讲解
Luo Gu p3177 tree coloring [deeply understand the cycle sequence of knapsack on tree]
多元线性回归(梯度下降法)
scipy.misc.imread()
MPSoC QSPI flash upgrade method
The combination of deep learning model and wet experiment is expected to be used for metabolic flux analysis
混淆矩阵(Confusion Matrix)
AUTOSAR从入门到精通100讲(103)-dbc文件的格式以及创建详解
Attention is all you need
AdaBoost use
Halcon shape_ trans
ROS learning 4 custom message
微信H5公众号获取openid爬坑记
C [essential skills] use of configurationmanager class (use of file app.config)
Basic number theory -- Euler function
[daiy4] copy of JZ35 complex linked list
3D reconstruction open source code summary [keep updated]