本文介绍java系统如何集成阿里云短信服务
直接上代码
添加maven依赖SDK
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
具体代码
package com.test.ali;
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 SmsUtil {
/**
* 短信发送(可以一次请求向多个不同的手机号发送
* 同样的内容)
* @param accessKeyId akID
* @param accessSecret ak密钥
* @param phoneNumber 手机号码(如果为多个手机号用英文逗号隔开如:18600000000,18600000001)
* @param signName 短信签名名称
* @param templateCode 短信签名模版
* @param templateParam 短信模版变量对应的实际值
*/
public static void sendSms(String accessKeyId, String accessSecret,
String phoneNumber, String signName,
String templateCode, String templateParam) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
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", phoneNumber);
request.putQueryParameter("SignName", signName);
request.putQueryParameter("TemplateCode", templateCode);
request.putQueryParameter("TemplateParam", templateParam);
try {
CommonResponse response = client.getCommonResponse(request);
String result = response.getData();//返回发送状态
System.out.println(result);
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
/**
* 查看短信发送记录和发送状态
* @param accessKeyId akID
* @param accessSecret ak密钥
* @param phoneNumber 手机号码
* @param sendDate 查询日期 yyyyMMdd
* @param pageSize 每页记录数
* @param currentPage 第几页
*/
public static void querySmsSendDetails(String accessKeyId, String accessSecret,
String phoneNumber, String sendDate,
String pageSize, String currentPage) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
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("QuerySendDetails");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumber", phoneNumber);
request.putQueryParameter("SendDate", sendDate);
request.putQueryParameter("PageSize", pageSize);
request.putQueryParameter("CurrentPage", currentPage);
try {
CommonResponse response = client.getCommonResponse(request);
String result = response.getData();
//TODO 对结果数据进行处理或者返回
System.out.println(request);
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
SmsUtil.sendSms("你的accessKeyId",
"你的accessSecret",
"要发送的手机号码",
"短信签名名称",
"短信签名模版",
"短信模版变量对应值
如:{\"code\":666666}");
}
}
##(注意下面五个步骤必须确保完成,以上代码才可以进行调用!!!)
1.获得阿里云2000元产品通用代金券
2.实名认证,使用阿里云产品时必须要进行实名认证
2.1.个人实名认证
有两种方式,通过个人支付宝或者阿里云app
2.2.企业实名认证
阿里云企业实名认证可以通过四种途径:
a.通过企业支付宝授权认证。
b.通过企业法人支付宝授权认证。
c.通过企业法人扫脸认证。
d.通过企业银行打款方式认证
3.购买阿里云短信套餐包
4.申请短信签名以及短信模版
短信签名是短信发送方的身份,短信模版是短信的内容:
4.1.免费开通短信服务
4.2.添加签名
4.3.添加模版
短信签名和短信模版审核会很快。
5.创建AccessKey
5.1.新建用户
5.2.记住如下展示AccessKey相关信息
务必要记住下图中的accsessKeyId以及accessKeySecret,可以点击列表
上方下载CSV文件进行下载保存
5.3.给新建用户赋予短信相关权限
点击上图添加权限按钮给用户赋予短信相关权限