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

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

作者: 小刘说编程 | 来源:发表于2018-04-18 16:24 被阅读0次

导读

短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码、短信通知等。如何通过编码将两种功能实现完美结合,爱尚实训有绝招

接入阿里云短信服务

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

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

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

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

注:${code}为变量名称

申请成功后会得到模板code

注意事项:

短信格式:

短信由签名和模板两部分组成。用户需要先申请短信签名,审批通过后,再申请短信模板

•短信示例:【阿里云】验证码${code},您正进行支付宝的身份验证

•短信签名是:【阿里云】

•短信模板是:验证码${code},您正进行支付宝的身份验证

•变量是:${code}

•验证码和系统通知类短信需申请:系统签名和系统模板

•推广营销类短信需申请:营销签名和营销模板

•短信内容不支持【】,会与签名混淆,特殊符号可能会导致短信出现乱码,暂不支持如、、 、 →、等特殊符号

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

5.1点击添加签名

选择个人使用

6.下载SDK开发工具和DEMO

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

1.importcom.aliyuncs.DefaultAcsClient;

2.importcom.aliyuncs.IAcsClient;

3.importcom.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;

4.importcom.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;

5.importcom.aliyuncs.exceptions.ClientException;

6.importcom.aliyuncs.http.MethodType;

7.importcom.aliyuncs.profile.DefaultProfile;

8.importcom.aliyuncs.profile.IClientProfile;

9.

14.publicclass 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.importcom.aishang.sms.ALiSMSUtil;

2.importcom.aliyuncs.exceptions.ClientException;

3.

4.publicclass 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.haomeiwen.com/subject/cutbkftx.html