阿里云短信服务-java模版CODE
阿里云短信服务从头到尾流程java版本
短信服务通常是找第三方作为主要的发送手段(除了大佬),而这些第三方大多数都是来来回回最后找你要钱,可能不要钱的我没发现,但是阿里云这个配置比较通俗易懂吧,虽然也要钱,但是0.04一条,作为测试开发用一点也不贵吧(但也有套餐)。
主要流程为 注册签名 --> 注册模板---> 获取模板-->下载对应的sdk--->替换模板中的数据
阿里云申请方面主要包括 签名名称,模板,AccessKey(AccessKey ID,Access Key Secret)
例如 饿了吗,您的注册码为1234 这里面饿了吗就是签名,您的注册码就是{code}这个是模板。
1 注册方面
这个不说了吧,阿里云账号都有吧,短信开通服务也是免费开通的
但是要说明一点,就是短信服务和短信验证码不一样的
1.1注册签名
签名注册其实挺麻烦吧(最麻烦的)分为两种签名 注意的是要和模板类型相互对应
1 验证码签名(只有验证码)!! 未上线产品只能申请验证码
2 通用签名 (包括通知,验证码,推广短信,港澳台)这个需要需要上交很多材料,也可以试试选择微信公众号内个,可以不用上交材料(但是大概率审核不过),最好上线后在申请这个。
因为时间原因,我就选择验证码服务,名称尽量起的正常一样,之前申请了5 6次,不断改名,最后才成功
1.2模板注册
模板注册相对签名容易一些相比签名来说,这个比较容易一些,!!!但是之前模板申请的类型是签名类型要和模板类型对应,这里模板类型为验证码类型
1.3 AccessKey
AccessKey包括主要为AccesskeyId 和 Access Key Sercret 这个很容易了,短信验证码发送就可以找到了,在个人头像中能够的accesskey管理就可以找到了
2 sdk方面
sdk方面支持很多语言的sdk的,我这里使用是java
链接如下
https://help.aliyun.com/document_detail/112148.html?spm=a2c4g.11186623.2.12.15ec50a4Jd0cIw
2.1 jar包下载
我的开发工具是eclipse,除了直接下载的阿里的sdk 的jar包,还需要配套的gson的jar包,如果没有会报错
java的sdk和gson对应的jar包 https://github.com/zyhQAQ/gson.git
2.2 具体代码
具体代码如下,调用方法就可以发送了 !注意联网
package com.zyh.util; import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; public class SendSmsByPhone { private String AccessKeyId = "";//对应的accesskeyid private String AccessKeySecret = "";//对应的accesskeysecret public void sendmessage(String phone){ //传入手机号,一次调用支持发送一个手机号验证码 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", AccessKeyId, AccessKeySecret); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25");//日期别乱写 request.setAction("SendSms"); request.putQueryParameter("RegionId", "cn-hangzhou"); request.putQueryParameter("PhoneNumbers", phone);//手机号 request.putQueryParameter("SignName", "往事如风");//签名名称 request.putQueryParameter("TemplateCode", "SMS_180956392");//模板code request.putQueryParameter("TemplateParam","{\"code\":\"1234\"}");//这个里面填写验证码内容 try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }