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

接入阿里云短信服务
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(微信同上)

猜你喜欢

转载自www.cnblogs.com/aishangshixun/p/8875847.html
今日推荐