原来对接阿里云手机验证码服务操作这么简单

接入阿里云短信服务
1.注册阿里云短信服务账号,这里使用淘宝账号就可以登陆,不做演示,入口如图

 2.既然使用服务,那肯定要涉及到费用,我们看一下收费标准,连接:短信业务规则

 3.API说明文档,生成Acceses Key(生成后请妥善保存)
 

4.选择模板,获取模板code
 

注:${code}为变量名称
申请成功后会得到模板code
 

注意事项:
短信格式:
?    短信由签名和模板两部分组成。用户需要先申请短信签名,审批通过后,再申请短信模板
?    短信示例:【阿里云】验证码${code},您正进行支付宝的身份验证
?    短信签名是:【阿里云】
?    短信模板是: 验证码${code},您正进行支付宝的身份验证
?    变量是:${code}
?    验证码和系统通知类短信需申请:系统签名和系统模板
?    推广营销类短信需申请:营销签名和营销模板
?    短信内容不支持【】,会与签名混淆,特殊符号可能会导致短信出现乱码,暂不支持如、、 、 →、等特殊符号

5.申请签名(根据用户属性来创建符合自身属性的签名信息)    
5.1点击添加签名
 

选择个人使用
 

6.下载SDK开发工具和DEMO

 
下载后解压 找到这两个jar包,导入工程
 

1.    import com.aliyuncs.DefaultAcsClient;  
2.    import com.aliyuncs.IAcsClient;  
3.    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;  
4.    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;  
5.    import com.aliyuncs.exceptions.ClientException;  
6.    import com.aliyuncs.http.MethodType;  
7.    import com.aliyuncs.profile.DefaultProfile;  
8.    import com.aliyuncs.profile.IClientProfile;  
9.      
14.    public class ALiSMSUtil {  
15.        final static String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)  
16.        final static String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)  
17.        //替换成你的AK  
18.        final static String accessKeyId = "你的accessKeyId";//你的accessKeyId  
19.        final static String accessKeySecret = "你的accessKeySecret";//你的accessKeySecret  
20.        final static String TEMPLATECODE = "你的模板CODE";//你的模板CODE  
21.        final static String SIGNNAME = "你的签名名称";//你的签名名称  
22.          
23.         
28.        public static void sendCode(String tel) throws ClientException {  
29.            //设置超时时间-可自行调整  
30.            System.setProperty("sun.net.client.defaultConnectTimeout", "10000");  
31.            System.setProperty("sun.net.client.defaultReadTimeout", "10000");  
32.            //初始化ascClient需要的几个参数  
33.              
34.              
35.              
36.            //初始化ascClient,暂时不支持多region(请勿修改)  
37.            IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,  
38.            accessKeySecret);  
39.            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);  
40.            IAcsClient acsClient = new DefaultAcsClient(profile);  
41.             //组装请求对象  
42.             SendSmsRequest request = new SendSmsRequest();  
43.             //使用post提交  
44.             request.setMethod(MethodType.POST);  
45.             //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式  
46.             request.setPhoneNumbers(tel);  
47.             //必填:短信签名-可在短信控制台中找到  
48.             request.setSignName(SIGNNAME);  
49.             //必填:短信模板-可在短信控制台中找到  
50.             request.setTemplateCode(TEMPLATECODE);  
51.             //生成随机6位数字(验证码,生成后发送给用户)  
52.             long round = Math.round(Math.random()*1000000);  
53.             String code = String.valueOf(round);  
54.             //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为  
55.             //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败  
56.             //request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");  
57.             request.setTemplateParam("{\"code\":\""+code+"\"}");  
58.             //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者  
59.             //request.setOutId("yourOutId");  
60.            //请求失败这里会抛ClientException异常  
61.            try {  
62.                SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);  
63.                if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {  
64.                //请求成功  
65.                System.out.println("请求消息结果      -->  "+sendSmsResponse.getMessage());  
66.                }  
67.            } catch (Exception e) {  
68.                // TODO Auto-generated catch block  
69.                //e.printStackTrace();  
70.                System.out.println("请求失败");  
71.            }  
72.        }  
73.    }

[java] view plain copy
1.    import com.aishang.sms.ALiSMSUtil;  
2.    import com.aliyuncs.exceptions.ClientException;  
3.      
4.    public class DemoTest {  
5.      
6.        public static void main(String[] args) {  
7.            try {  
8.                ALiSMSUtil.sendCode("手机号码");  
9.            } catch (ClientException e) {  
10.                System.out.println("初始化失败");  
11.            }  
12.      
13.        }  
14.      
15.    }

爱尚实训--做品质教育    用事实说话
学校地址:哈尔滨市南岗区和兴三道街214号13层
咨询热线:0451-51062023、13624602876(微信同上)

原文地址:https://www.cnblogs.com/aishangshixun/p/8875847.html

时间: 2024-07-31 10:32:27

原来对接阿里云手机验证码服务操作这么简单的相关文章

Rancher通过Aliyun-slb服务对接阿里云SLB教程

概要 阿里云负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(Elastic Compute Service,简称 ECS)的流量分发控制服务. 负载均衡服务通过设置虚拟服务地址,将位于同一地域的多台ECS实例虚拟成一个高性能.高可用的应用服务池:再根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中.负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用. 负载均衡服务会检查云服务器池中ECS实例的健康状态,自动隔离异常状

使用阿里云短信服务发送短信验证码

阿里云短发服务使用流程: 1.在阿里云上完成短信服务的购买. 2.导入相关的jar包. <!-- 阿里云短信服务 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <!-- 阿里云短

阿里云 IOT 对接设备开发 C# 开发设备对接阿里云 IOT平台

原文:阿里云 IOT 对接设备开发 C# 开发设备对接阿里云 IOT平台 一,创建阿里云 IOT 产品.设备 目前阿里云每月赠送 100 万条流量,可以免费使用基础版.高级版,开通后即可免费使用. 阿里云 IOT 平台地址 https://iot.console.aliyun.com/product 登陆开通后,新建测试产品.设备. 创建产品 产品的定义是,一类硬件.功能.外形完全相同的设备.所以,添加一个产品后,我们就可以在此类别下添加成千上万个设备. 下面的信息要选.设备.非网关,原因后面说

使用阿里云的oss服务在前端进行文件上传踩过的坑

直接在前端使用阿里云的oss服务向oss上传文件有现成的js写的sdk 项目地址:https://github.com/aliyun-UED/aliyun-sdk-js 使用js上传的example地址:https://github.com/aliyun-UED/oss-js-upload 使用上面的example中的例子做好相关的配置后可以直接进行文件的上传操作,但是当文件的上传大小超过切片大小时,会对改文件进行切片上传操作,这个时候,文件总是在上传成功后进行文件的拼接操作时失败,这个时候注意

Laravel框架怎样使用阿里云ACE缓存服务

Laravel框架怎样使用阿里云ACE缓存服务 之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章.介绍了怎样通过扩展 Laravel 4 来支持须要 SASL 认证的阿里云 OCS 缓存服务.有网友问我.ACE 的缓存怎么在 Laravel 4 中使用.我本来认为应该能够全然用同样的办法,后来自己尝试的时候才发现,ACE 的缓存区别很大.所以再写一篇,介绍一下怎样在 Laravel 框架中使用阿里云 ACE 的缓存服务. 怎样扩展 Laravel 的缓存驱动 在 Lar

Laravel框架如何使用阿里云ACE缓存服务

Laravel框架如何使用阿里云ACE缓存服务 之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章,介绍了如何通过扩展 Laravel 4 来支持需要 SASL 认证的阿里云 OCS 缓存服务.有网友问我,ACE 的缓存怎么在 Laravel 4 中使用.我本来觉得应该可以完全用相同的办法,后来自己尝试的时候才发现,ACE 的缓存差别非常大.所以再写一篇,介绍一下如何在 Laravel 框架中使用阿里云 ACE 的缓存服务. 如何扩展 Laravel 的缓存驱动 在 La

双11同款!阿里云发布全局事务服务GTS:每秒处理10万笔事务

摘要: 5月30日,阿里云宣布全局事务服务产品GTS正式商用,每秒可处理10万笔事务,将分布式事务这个"贵族技术"变为"平民技术 ",可解决跨数据库.消息.服务的分布式环境下的事务一致性问题,让开发者无需考虑复杂的事务问题,加速微服务落地,效率比传统的XA协议提升了10倍之多. 5月30日,阿里云宣布全局事务服务产品GTS正式商用,每秒可处理10万笔事务,将分布式事务这个"贵族技术"变为"平民技术 ",可解决跨数据库.消息.服

阿里云短信服务调用例子-Python

阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是python3版本的安装方式) pip install aliyun-python-sdk-core-v3 阿里云官方调用例子 #!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyun

调用阿里云短信服务

package com.example.demo.untils; /** * Created by JQY on 2019/5/15 */ import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.Send