阿里短信模板调用的总结

进公司写后台管理端,需要调用阿里的短信模板接口,申请短信模板,供之后的APP端使用,对此进行简单的总结。
  1. 概述
短信模版,即具体发送的短信内容,可以支持验证码、短信通知、推广短信三种模式。验证码和短信通知,通过变量替换实现个性短信定制。
 这是阿里官方文档的概述,简单来说就是:平常我们收到各大平台发送的短信,基本都是有固定的模板,然后类似于验证码或者个人信息等内容只需要调用模板然后替换即可;
  1. 示例
(1)验证码短信
	【阿里云】您正在申请手机注册,验证码为:\${code},5分钟内有效!
(2)短信通知
	【阿里云】尊敬的\${name},您购买的云小蜜实例:\${instanceid},已于\${duedate}正式到期。			     
	如您要继续使用,请于\${date}前及时续费或重新购买。
其中\${ }中的内容就是将来选择替换群发的内容; 【 】中的内容是短信签名,具体也要去阿里云申
请,这样以后才能调用接口群发。
  1. 具体实现
阿里云控制台方面的配置工作是由公司完成配置,所以此处略过;
 我具体负责的模块是:
 (1) ModifySmsTemplate 修改未通过的短信模板
 (2) QuerySmsTemplate 查询短信模板的状态
 (3) AddSmsTemplate 增加短信模板
 (4) DeleteSmsTemplate 删除短信模板

java 阿里短信对接 阿里短信模板_阿里云


配置阿里云:

public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId)//控制台获取
                .setAccessKeySecret(accessKeySecret);//控制台获取
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new com.aliyun.dysmsapi20170525.Client(config);
    }
增删查改四个方法(其中AliyunSmsUtils是类名,自己随便定义)
// 调用接口AddSmsTemplate申请短信模板
    public static AddSmsTemplateResponseBody addSmsTemplate(Integer TemplateType, String TemplateName, String TemplateContent, String Remark) {
        try {
            com.aliyun.dysmsapi20170525.Client client = AliyunSmsUtils.createClient(AliyunBaseModel.ACCESSKEY_ID, AliyunBaseModel.ACCESSKEY_SECRET);
            AddSmsTemplateRequest templateRequest = new AddSmsTemplateRequest();
            templateRequest.setTemplateType(TemplateType)
                    .setTemplateName(TemplateName)
                    .setTemplateContent(TemplateContent)
                    .setRemark(Remark);
            AddSmsTemplateResponse addSmsResponse = client.addSmsTemplate(templateRequest);
            return addSmsResponse.getBody();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    //调用接口QuerySmsTemplate查询短信模板的审核状态
    //审核备注:
    //1.如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”。
    //2.如果审核状态为审核未通过,参数Reason显示审核的具体原因。
    public static QuerySmsTemplateResponseBody querySmsTemplate(String TemplateCode) throws Exception {
        com.aliyun.dysmsapi20170525.Client client = AliyunSmsUtils.createClient(AliyunBaseModel.ACCESSKEY_ID, AliyunBaseModel.ACCESSKEY_SECRET);
        QuerySmsTemplateRequest templateRequest = new QuerySmsTemplateRequest();
        templateRequest.setTemplateCode(TemplateCode);
        try {
            QuerySmsTemplateResponse querySmsResponse = client.querySmsTemplate(templateRequest);
            return querySmsResponse.getBody();
        } catch (ServerException e) {
            e.printStackTrace();
            return null;
        } catch (ClientException e) {
            e.printStackTrace();
            return null;
        }
    }

    //调用接口ModifySmsTemplate修改未通过审核的短信模板
    public static ModifySmsTemplateResponseBody modifySmsTemplate(Integer TemplateType, String TemplateName, String TemplateContent, String Remark, String TemplateCode) throws Exception {
        com.aliyun.dysmsapi20170525.Client client = AliyunSmsUtils.createClient(AliyunBaseModel.ACCESSKEY_ID, AliyunBaseModel.ACCESSKEY_SECRET);
        ModifySmsTemplateRequest templateRequest = new ModifySmsTemplateRequest();

        templateRequest.setTemplateType(TemplateType)
                .setTemplateName(TemplateName)
                .setTemplateContent(TemplateContent)
                .setTemplateCode(TemplateCode)
                .setRemark(Remark);
        try {
            ModifySmsTemplateResponse modifySmsResponse = client.modifySmsTemplate(templateRequest);
            return modifySmsResponse.getBody();
        } catch (ServerException e) {
            e.printStackTrace();
            return null;
        } catch (ClientException e) {
            e.printStackTrace();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    // 调用接口DeleteSmsTemplate删除短信模板
    public static DeleteSmsTemplateResponseBody deleteSmsTemplate(String TemplateCode) throws Exception {
        com.aliyun.dysmsapi20170525.Client client = AliyunSmsUtils.createClient(AliyunBaseModel.ACCESSKEY_ID, AliyunBaseModel.ACCESSKEY_SECRET);
        DeleteSmsTemplateRequest templateRequest = new DeleteSmsTemplateRequest();

        templateRequest.setTemplateCode(TemplateCode);
        try {
            DeleteSmsTemplateResponse deleteSmsTemplateResponse = client.deleteSmsTemplate(templateRequest);
            return deleteSmsTemplateResponse.getBody();
        } catch (ServerException e) {
            e.printStackTrace();
            return null;
        } catch (ClientException e) {
            e.printStackTrace();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
参数说明:

java 阿里短信对接 阿里短信模板_java 阿里短信对接_02


第一次记录,许多地方没有描述清楚,多多理解,有问题指正看到会第一时间更。

参考文档: 阿里云短信模板官方文档.