首先在阿里云短信平台找到这几个参数对应的信息
阿里云短信秘钥
aliyun:
accessKeyId:
accessKeySecret:
#短信签名,可以在阿里云短信控制台查找
messageSignature:
#验证码短信模板
templateId:
模板内容代码
public ResultVO smsSendCommunityNotification2(String mobile, String cname, String ntitle, String id) {
if (StringUtils.isEmpty(mobile)){
return ResultVOFactory.buildFail("手机号不能为空");
}
String message = "{\"cname\":\"" + cname + "\",\"ntitle\":\"" + ntitle + "\",\"code\":\"" + id +"\"}";
SendSmsResponse sendSmsResponse = new SendSmsResponse();
try {
sendSmsResponse =AliyunSmsUtil.sendSms2(mobile,message,accessKeyId1,accessKeySecret1,messageSignature3,templateId19);
if (sendSmsResponse.getCode()== null || !sendSmsResponse.getCode().equals("OK")){
return ResultVOFactory.buildFail(sendSmsResponse.toString()+","+sendSmsResponse.getMessage());
}
return ResultVOFactory.buildSuccess(sendSmsResponse.getMessage());
} catch (ClientException e) {
e.printStackTrace();
return ResultVOFactory.buildFail("短信发送失败:"+sendSmsResponse.toString()+","+sendSmsResponse.getMessage());
}
}
发送短信工具类
public static SendSmsResponse sendSms2(String telephone,String message,String accessKeyId,String accessKeySecret,String messageSignature,String templateId) throws ClientException {
// 可自助调整超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
// 初始化acsClient,暂不支持region化
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
// 组装请求对象-具体描述见控制台-文档部分内容
SendSmsRequest request = new SendSmsRequest();
// 必填:待发送手机号
request.setPhoneNumbers(telephone);
// 必填:短信签名-可在短信控制台中找到
request.setSignName(messageSignature); // TODO 改这里
// 必填:短信模板-可在短信控制台中找到
request.setTemplateCode(templateId); // TODO 改这里
// 可选:模板中的变量替换JSON串
request.setTemplateParam(message);
// 选填-上行短信扩展码(无特殊需求用户请忽略此字段)
// request.setSmsUpExtendCode("90997");
// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId("yourOutId");
// hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){
System.out.println("短信发送成功!");
}else {
log.error("短信发送失败:"+sendSmsResponse.toString()+","+sendSmsResponse.getMessage());
}
return sendSmsResponse;
}
所需参数:
- // 产品名称:云通信短信API产品,开发者无需替换
static final String product = “Dysmsapi”; - // 产品域名,开发者无需替换
static final String domain = “dysmsapi.aliyuncs.com”;