zoukankan      html  css  js  c++  java
  • ~随笔A019~使用阿里|云通信进行短信通知

      如今,在中国大陆,位于三大运营商之下的各种短信平台,综合各短信平台的费用、到达效率等评估,这里采用阿里短信平台最为核算。

    阿里云通信前身是阿里大鱼,后与阿里合并更名为阿里云通信。

      1.创建阿里云账号

      2.获取阿里云访问密钥

       3.签名管理

      4.模板管理

     

      5.加载依赖的jar包(此处以maven项目为例,如是常规java或Javaweb项目,直接放在WEB-INF/lib下)

             <dependency>
                 <groupId>com.aliyun</groupId>
                 <artifactId>aliyun-java-sdk-core</artifactId>
                 <version>3.2.6</version>
             </dependency>
             <dependency>
                 <groupId>com.aliyun</groupId>
                 <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
                 <version>1.0.0</version>
             </dependency>

      6.java后端代码演示

    package com.jeecg.utils;
    
    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.aliyuncs.profile.IClientProfile;
    
    public class AliMessageSend {
    
        // 产品名称:云通信短信API产品,开发者无需替换
        private static final String product = "Dysmsapi";
        // 产品域名,开发者无需替换
        private static final String domain = "dysmsapi.aliyuncs.com";
    
        // 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
        // private static String mobile = "15811543044";
        private static String accessKeyId = "LTAIcxqEMCaetlSH";
        private static String accessKeySecret = "Jd7xsOrqGqXvLoup8iE5QmSN94GbxU";
        private static String signName = "英大清源";
        private static String templeteCode = "SMS_130845637";// "短信模版Code(一般都是SMS_********格式)";
    
        // 调用短信接口
        /*
         * public static void main(String[] args) { try { sendSms(); } catch
         * (ClientException e) { System.out.println(e); } }
         */
    
        // 发送短信方法
        public static SendSmsResponse sendSms(String mobile, String name, String code) throws ClientException {
            // 可自助调整超时时间
            System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
            System.setProperty("sun.net.client.defaultReadTimeout", "10000");
    
            // 初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret);
            DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
    
            // 组装请求对象-具体描述见控制台-文档部分内容
            SendSmsRequest request = new SendSmsRequest();
    
            // 必填:待发送手机号
            request.setPhoneNumbers(mobile);
            // 必填:短信签名-可在短信控制台中找到
            request.setSignName(signName);
            // 必填:短信模板-可在短信控制台中找到
            request.setTemplateCode(templeteCode);
    
            // 可选:模板中的变量替换JSON串,如模板内容为"尊敬的用户,您的验证码为${code}"时,此处的值为
            // String jsonParam = "{"code":"验证码"}";
            String jsonParam = "{"name":"" + name + "", "code":"" + code + ""}";
            request.setTemplateParam(jsonParam);
    
            // hint 此处可能会抛出异常,注意catch
            SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
    
            System.out.println("发送消息提示====" + sendSmsResponse.getMessage());
            return sendSmsResponse;
        }
    }

       7.通过以上步骤,我们的短信发送将成功显示到相应手机中。(显示如下图)

      备注:短信接口错误调研码地址如下:

      https://help.aliyun.com/KnowledgeDetail.htm?spm=5176.2020520129.113.2.8b2346ae8mu813&knowledgeId=57717

      

  • 相关阅读:
    微信小程序,答题问卷,单选,多选混合在一个借口,前端怎么循环
    react 从0到1
    react从0到0
    es6 系统总结
    点击页面的某个元素,弹出这个元素的索引(是第几个)
    js return的用法
    安装golang.org/x/*
    完美解决从github上下载东西慢的方法
    初探golang和应用其框架 gin 的 使用教程(一)安装篇
    CentOS7安装go开发环境
  • 原文地址:https://www.cnblogs.com/gaojl/p/8744248.html
Copyright © 2011-2022 走看看