1、入住阿里云

首先,注册阿里云账号或者快捷登陆

其次,实名认证

根据情况选择是企业还是个人用户(以个人用户为例)

然后选择个人支付宝授权认证

最后,根据实际情况填写个人信息

2、开通短信服务

首先,登陆

其次,绑定电子邮箱

绑定成功后,选择开通短信服务

开通成功后,可以看到阿里云免费赠送了100条短信

如果短信不够用,可以购买,不具体叙述。

3、获取AccessKey

首先,将鼠标放到用户头像上

点击accesskeys,出现下面的界面:

点击开始使用子用户Accesskey,进入下面的界面:

点击开通后跳转下面的界面:

再点击下面的accesskeys:

出现下面界面:

选择继续使用Accesskey,点击创建AccessKey,如下图:

成功后,如图:

4、创建签名和模版

(1)创建签名

首先,短信服务->国内消息,如图:

点击添加签名,根据实际情况填写申请信息(例如:签名用途,选择第二个)

注:如何获取ICP备案:https://jingyan.baidu.com/article/925f8cb818d04cc0dce05660.html

(2)添加模板

模板类型可以选择验证码也可以选择短信通知,由于需要测试验证码短信和通知短信,所以可以添加两个模板

添加审核成功后,如图:

5、编程(Java)

public class SmsUtil {//产品名称:云通信短信API产品,开发者无需替换static final String product="Dysmsapi";//产品域名,开发者无需替换static final String domain = "dysmsapi.aliyuncs.com";// 此处需要替换成开发者自己的AccessKey(在阿里云访问控制台寻找)static final String accessKeyId = "yourAccessKeyId";static final String accessKeySecret = "yourAccessKeySecret";/*** 发送验证码短信* 模板为验证码类型* * @phoneNumber*/public static boolean sendSms(String phoneNumber,String code) throws ClientException{//可自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化acsClient,暂不支持region化IClientProfile profile=DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient=new DefaultAcsClient(profile);//组装请求对象-具体描述见控制台-文档部分内容SendSmsRequest request=new SendSmsRequest();//必填:待发送手机号request.setPhoneNumbers(phoneNumber);//必填:短信签名-可在短信控制台中找到举个例子request.setSignName("");//必填:短信模板id-可在短信控制台中找到,是id不是名字,举个例子request.setTemplateCode("");//可选:模板中的变量替换JSON串,如模板内容 \为"亲爱的${name},您的验证码为${code}"时,此处的值为--必填,与模板相对应//request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");request.setTemplateParam("{\"code\":\""+code+"\"}");//选填-上行短信扩展码(无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者//request.setOutId("yourOutId");//hint 此处可能会抛出异常,注意catchSendSmsResponse sendSmsResponse=acsClient.getAcsResponse(request);//System.out.println(sendSmsResponse.getCode());if (sendSmsResponse.getCode().equals("OK")) {return true;}return false;}/*** 发送通知类短信* 模板为通知类型* */public static boolean sendSmg(String phoneNumber,String name) throws ClientException{//可自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化acsClient,暂不支持region化IClientProfile profile=DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient=new DefaultAcsClient(profile);//组装请求对象-具体描述见控制台-文档部分内容SendSmsRequest request=new SendSmsRequest();//必填:待发送手机号request.setPhoneNumbers(phoneNumber);//必填:短信签名-可在短信控制台中找到举个例子request.setSignName("");//必填:短信模板id-可在短信控制台中找到,是id不是名字,举个例子request.setTemplateCode("");//可选:模板中的变量替换JSON串,如模板内容   \为"亲爱的${name},您的验证码为${code}"时,此处的值为--必填,与模板相对应request.setTemplateParam("{\"name\":\""+name+"\"}");//request.setTemplateParam("{\"code\":\""+getRandomSMSCode(6,true)+"\"}");//选填-上行短信扩展码(无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者//request.setOutId("yourOutId");//hint 此处可能会抛出异常,注意catchSendSmsResponse sendSmsResponse=acsClient.getAcsResponse(request);//System.out.println(sendSmsResponse.getCode());if (sendSmsResponse.getCode().equals("OK")) {return true;}return false;}/*** 随机生成验证码* 参数numberCode控制验证码类型,true为纯数字,false为数字和字母的混合* */public static final String getRandomSMSCode(int length, boolean numberCode) {String randomSMSCode="";String codeTable = numberCode ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz";boolean flag = true;do {int count = 0;for (int i = 0; i < length; i++) {double dblR = Math.random() * codeTable.length();int intR = (int) Math.floor(dblR);char c = codeTable.charAt(intR);if (('0' <= c) && (c <= '9')) {count++;}randomSMSCode += codeTable.charAt(intR);}if (count >= 2) {flag = false;}} while (flag);return randomSMSCode;}
}

6、发送短信

public class Test {public static void main(String[] args) throws ClientException {sendSms("138****0204");sendSmg("182****9810","张三");}@SuppressWarnings("resource")public static void sendSms(String phoneNumber) throws ClientException {String randomSMSCode = SmsUtil.getRandomSMSCode(5,true);if (SmsUtil.sendSms(phoneNumber,randomSMSCode)) {System.out.println("短信发送成功");Scanner scanner= new Scanner(System.in);System.out.println("请输入您收到的验证码:");String code=scanner.next();if (randomSMSCode.equals(code)) {System.out.println("验证成功");}}else {System.out.println("失败");}}public static void sendSmg(String phoneNumber,String name) throws ClientException {if (SmsUtil.sendSmg(phoneNumber, name)) {System.out.println("通知短信已经发送");}else {System.out.println("发送失败");}}
}

实现所需jar包:https://download.csdn.net/download/willy__qi/10684014

阿里云短信服务首次接入完整流程:https://help.aliyun.com/document_detail/59210.html?spm=5176.sms-account.108.5.f51e1cbejQpdYa

阿里云验证码与通知短信相关推荐

  1. 阿里云接口实现发送短信验证码

    java 阿里云接口实现发送短信验证码 1. 阿里云后台配置短信相关 1.1 开通短信服务 1.2 添加模板签名 1.3 创建秘钥 1.4 短信需要后台授权--注意点 2 java--简单实现短信验证 ...

  2. 阿里云服务 - Java实现短信验证码发送 --(完整教程)

    我们在实现登录注册的时候,常常用到了短信验证码校验,下面给大家简单介绍阿里云的短信服务平台. 相关jar包: aliyun-java-sdk-core-3.2.2.jar(点此下载) aliyun-j ...

  3. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)

    一.开通阿里云短信服务 开通步骤如下图所示 开通完成后,进入阿里云短信验证首页,点击国内消息 一般来说,在短信验证时需要签名管理和模板管理,但是签名管理需要备案或者上线服务,所以对于没有备案和上线应用 ...

  4. 阿里云短信服务不对个人开放?如何在阿里云市场免费购买短信服务?云市场购买到的短信服务如何使用?(以谷粒学院项目为例)

    问题描述: 在做谷粒学院项目时,需要使用阿里云的短信服务用于注册验证,但是阿里云的短信服务目前不对个人开放了,看到弹幕说可以在云市场购买,于是果断尝试了一把,这过程中又遇到头疼的依赖版本兼容问题,好在 ...

  5. 验证码、通知短信API常见使用问题

    如今短信应用于我们生活工作的方方面面,注册或者登录一个应用可以用短信验证码快速登录,支付可以使用短信验证码:商家搞促销活动可以发送通知短信给客户,会员到期了商家可以发送告警短信给会员用户-可见验证码短 ...

  6. 使用阿里云短信通知服务发送短信--工具类

    public class AliyunUtils {public static boolean sendSMS(String mobilephone,Integer status) throws Se ...

  7. 阿里云API定时发送短信(小记)

    定时任务的代码:import com.google.gson.Gson; import com.jianke.bid.common.SMSUtils; import org.springframewo ...

  8. java 阿里云接口实现发送短信验证码

    1.先去阿里云开通短信服务: 2.添加模板及签名:需要审核,个人账户审核就几分钟就OK 先解释一下模板及签名: 标准参照:https://help.aliyun.com/document_detail ...

  9. 阿里云——Java实现手机短信验证码功能

    目录 如何实现短信验证码功能 1.准备工作 1.1 注册 阿里云 账号,并完成实名认证.找到短信服务功能. 1.2 开通短信服务 1.3 签名与模板 1.4 获取AccessKey 1.5 打开短信控 ...

最新文章

  1. 一分钟AI | 特斯拉发布电动卡车,扫地机器人被曝窥探个人隐私
  2. C指针原理(7)-C内嵌汇编
  3. 安装 Python-Client
  4. JavaFX触屏事件
  5. 模板方法模式(Template Method Pattern)学习笔记
  6. python 运维自动化之路 Day2
  7. Spring Boot 2.x 注册 Servlet 三大组件 Servlet、Filter、Listener
  8. python+selenium+Firefox+pycharm版本匹配
  9. 删除java速度变慢_Java正则表达式运行速度很慢
  10. 集合分页展示,补全最后一页
  11. 打造数字化转型IT生态系统的IT管理方法:IT4IT一瞥
  12. 亚马逊获20亿美元信用额度:有助新业务投资
  13. 关于便携式打印机程序开发(一、原生安卓蓝牙调用)
  14. Spring Cloud(十七):高并发设计
  15. 官方确认索尼PS5创史上最佳首发记录 国行版可能要2021年见
  16. 天津插画师培训机构 ,0基础可以学吗?
  17. 逛画展(二分+队列)
  18. 云计算课程大纲,Linux云计算运维课程视频
  19. python作品简单手工做法_教你用塑料瓶做一款简易的小汽车
  20. spyder一打开就卡了_保时捷透露了3款从未见过的概念车-一起来看看

热门文章

  1. 电脑黑屏按什么键恢复?只需要3个键就可以解决黑屏
  2. Windows10 10大高级功能,个个功能强大,5倍提升工作效率
  3. OpenCV學習筆記(6)基於 VC+OpenCV+DirectShow 的多個攝像頭同步工作
  4. Python中的模块2
  5. TSINGSEE青犀视频平台人脸识别比对控制比对时间间隔的代码设计
  6. 聚观早报 | 嘀嗒出行重启赴港IPO;饿了么到店业务将与高德合并
  7. Netty里面的Boss和Worker【Server篇】
  8. [cocos2d-iphone]ios6截图问题
  9. html中如何设置动画鼠标,使用animate动画库添加鼠标经过动画
  10. 苹果手机人脸识别不了是什么原因_iPhone和安卓手机的人脸识别有什么区别?