首先在阿里云短信平台找到这几个参数对应的信息
阿里云短信秘钥
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(".client.defaultConnectTimeout", "10000");System.setProperty(".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 此处可能会抛出异常,注意catchSendSmsResponse 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 = “”;