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

前言

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

第一步

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

在这里插入图片描述

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

第二步 添加pom文件内容

<!--阿里大鱼-->
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-core</artifactId>
			<version>3.7.1</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
			<version>1.1.0</version>
		</dependency>

第三步 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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值