好记性不如烂笔头,记录一下集成阿里云短信平台的过程。
平台申请的过程略过,只讲代码有关的内容,首先是配置需要的依赖包:
<!-- begin of aliyun sms -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
<!-- end of aliyun sms -->
发送短信的方法:
/**
*
* @date 2018年8月7日下午3:20:30
* @author key_artist
* @todo TODO 提醒短信
*/
public void sendMsg(String mobilephone) {
String accessKeyId = null;
String accessKeySecret = null;
String signName = null;
String templateCode = null;
PropertiesUtils.load("/parameter.properties");
accessKeyId = PropertiesUtils.get("alisms.accessKeyId");
accessKeySecret = PropertiesUtils.get("alisms.accessKeySecret");
signName = PropertiesUtils.get("alisms.signName");
//自定义的短信模板编码,在阿里云短信平台中心配置
templateCode = "";
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化acsClient,暂不支持region化
IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret);
try {
DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", Constant.SMS_PRODUCT, Constant.SMS_DOMAIN);
} catch (ClientException e) {
logger.error("sendNoticeSMS-->error");
}
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象-具体描述见控制台-文档部分内容
SendSmsRequest request = new SendSmsRequest();
//必填:待发送手机号
request.setPhoneNumbers(mobilephone);
//必填:短信签名-可在短信控制台中找到
request.setSignName(signName);
//必填:短信模板-可在短信控制台中找到
request.setTemplateCode(templateCode);
//可选:模板中的变量替换JSON串
//request.setTemplateParam(templateParam);
//选填-上行短信扩展码(无特殊需求用户请忽略此字段)
//request.setSmsUpExtendCode("");
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId("yourOutId");
//hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = null;
try {
sendSmsResponse = acsClient.getAcsResponse(request);
} catch (Exception e) {
e.printStackTrace();
}
}
配置文件(parameter.properties),接入的key,申请接入的时候有,请将*替换成自己的内容
alisms.accessKeyId = ****
alisms.accessKeySecret = ****
alisms.endpoint = ****
alisms.topic = ****
alisms.signName = ****
完成上述步骤你就成功的接入了阿里云的短信接口,快去试试吧,如果你和我一样遇到了找不到JSONObject(Gson)的错误,可以参考一下我的另一篇文章:接入发送短信报ClassNotFoundException: com.google.gson.JsonParser