阿里短信

阿里短信

注册的时候或者什么时候,可以使用短信验证码,记录一下阿里短信的使用

1. 登录阿里云后先给自己的账户充值

阔气的大手一挥,充他个2块钱


2. 设置一些必要的东西

查看阿里云官方的使用文档,跟着步骤来即可,虽然看起来很复杂

主要需要的东西包括

  • AccessKey ID

  • AccessKey SECRET

  • 签名

  • 模版CODE

AccessKey SECRET只有在创建的第一次可以看到,记得记录下来,错过了就要再创建一个,提醒一下,虽然创建只需要点一下鼠标。


3. Java SDK使用

官网的文档也写得很详细了

  1. maven依赖
1
2
3
4
5
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
  1. 代码就直接从官网生成的模板拉下来就可以运行了

  1. 由于真正使用的时候电话号码是用户填写的,验证码是随机生成的,签名和模板不一定都只使用一套,总之,不能写死。写一个Util工具类,用参数的方式传进去,只需要替换成自己的accessKeyId和accessKeySecret就可以使用了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class SmsUtils 

//产品名称:云通信短信API产品,开发者无需替换
static final String product = "Dysmsapi";
//产品域名,开发者无需替换
static final String domain = "dysmsapi.aliyuncs.com";

static final Logger logger = LoggerFactory.getLogger(SmsUtils.class);

public CommonResponse sendSms(String phone, String code, String signName, String template) throws ClientException {

DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "替换成你的accessKeyId", "替换成你的accessKeySecret");
IAcsClient client = new DefaultAcsClient(profile);

CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", signName);
request.putQueryParameter("TemplateCode", template);
request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
request.putQueryParameter("OutId", "suibian123");

CommonResponse response = client.getCommonResponse(request);

logger.info("发送短信状态:{}", response.getHttpStatus());
logger.info("发送短信消息:{}", response.getData());

return response;
}
}

当然,accessKeyId和accessKeySecret也可以不写死,通过properties或yml文件来读取,那就最好了,不展开了

最后上效果图

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×