短信发送API(SendSms)---JAVA(阿里大鱼)

前言

最近项目中需要知道前一天数据同步进度,需要使用发送短信,首先考虑阿里云的,一个是API比较详细, 使用的人比较多 出现问题也好查询到办法!!!

第一步

(具体可以参考阿里官网阿里短信发送API)

短信发送API(SendSms)---JAVA(阿里大鱼)_第1张图片

  1. 获取阿里云的Access Key ID和Access Key Secret
  2. 创建短信模板 配置短信接口

第二步 添加pom文件内容


		
			com.aliyun
			aliyun-java-sdk-core
			3.7.1
		
		
			com.aliyun
			aliyun-java-sdk-dysmsapi
			1.1.0
		

第三步 ALiDaYuMessageUtil 短信发送工具类

public class ALiDaYuMessageUtil {

    private static final Logger Log = LoggerFactory.getLogger(ALiDaYuMessageUtil.class);

    //产品名称:云通信短信API产品,开发者无需替换
    static final String product = "*********";
    //产品域名,开发者无需替换
    static final String domain = "**.aliyuncs.com";

    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    static final String accessKeyId = "*********";
    static final String accessKeySecret = "*********";

    public static boolean sendVarifyMessage(String mobile, String code) {
        Log.info("ready to sendMsg to {} with verify code : {}", mobile, code);
        try {
            //初始化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(mobile);
            //必填:短信签名-可在短信控制台中找到
            request.setSignName("****");
            //必填:短信模板-可在短信控制台中找到

            String msg = "{\"code\":\"" + code + "\",\"product\":\"****\"}";
            request.setTemplateParam(msg);
            request.setTemplateCode("SMS_***");

            //request.setTemplateCode("SMS_***");
            //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
            //request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");

            //选填-上行短信扩展码(无特殊需求用户请忽略此字段)
            //request.setSmsUpExtendCode("90997");

            //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
            //request.setOutId("yourOutId");

            //hint 此处可能会抛出异常,注意catch
            SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

            if (sendSmsResponse.getCode().equals("OK")) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            Log.info("发送短信失败", e);
        }
        return false;
    }

    public static void main(String[] args) {
        // 生成验证码
        String captcha = "模板里的内容";
        Boolean flag = sendVarifyMessage("17771613693",captcha);
        System.out.println(flag);
    }
  }

第四步 运行代码测试

控制台输出

09:40:40.501 [main] INFO com.util.ALiDaYuMessageUtil - ready to sendMsg to 电话号码  with verify code : 模板里的内容
true

Process finished with exit code 0

手机收到短信推送 发送成功!!!

你可能感兴趣的:(JAVA)