短信发送(java版)

2023-10-30

如果通过阿里云短信服务产品发送短信。需要做以下操作

  • 1、登录阿里云,开启短信服务。
  • 2、创建短信api模板及短信内容类型,定义短信内容的时候如果有变量,则使用如${code}的形式,如果使用其他内容则查看产品文档。
  • 3、获取阿里云ACCESS_ID和密钥
  • 4、代码如下
添加短信依赖
 <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>alibabacloud-dysmsapi20170525</artifactId>
                <version>2.0.22</version>
 </dependency>


import cn.hutool.core.date.DateUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;

import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import lombok.extern.slf4j.Slf4j;

import java.util.Date;
import java.util.TimerTask;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

/**
 * 短信发送服务
 * @author zmd
 */
@Slf4j
public class SendSmsService extends TimerTask {
    private AppletUser appletUser;
    private RepairOrder repairOrder;
    public SendSmsService(AppletUser appletUser, RepairOrder repairOrder){
        this.appletUser = appletUser;
        this.repairOrder = repairOrder;
    }
    @Override
    public void run() {
        SmsProperties smsProperties = SpringUtil.getBean(SmsProperties.class);
     
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                .accessKeyId(OCRConstant.ACCESS_ID)
                .accessKeySecret(OCRConstant.ACCESS_SECRET)
                .build());
        
        AsyncClient client = AsyncClient.builder()
                .region("cn-hangzhou")
                .credentialsProvider(provider)
                .overrideConfiguration(ClientOverrideConfiguration.create()
                .setEndpointOverride("dysmsapi.aliyuncs.com")).build();
//        String timeStr = DateUtil.format(this.repairOrder.getDateOfArrival(),"yyyy-MM-dd HH:mm:ss");
        String timeStr = DateUtil.format(new Date(),"yyyy-MM-dd");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put(smsProperties.getTemplateParam(),timeStr);
        //{"time":"2022-12-12"}
        SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
                //接收短信的手机号码
                .phoneNumbers(this.appletUser.getPhonenumber())
                //短信签名名称
                .signName(smsProperties.getSignName())
                //短信模板code
                .templateCode(smsProperties.getTemplateCode())
                //短信模板变量对应的实际值
                .templateParam(String.valueOf(jsonObject))
                .build();
        CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
        SendSmsResponse resp = null;
        try {
            resp = response.get();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
        log.info(new Gson().toJson(resp));
        client.close();
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

短信发送(java版) 的相关文章

随机推荐

  • CSP-J初赛模拟试题及答案

    请点击 关注 收藏 本博客免费为你获取精彩知识分享 有惊喜哟 一 单项选择题 共15题 每题2分 共计30分 每题有且仅有一个正确选项 1 以下关于CSP J S的描述错误的是 A 参加CSP S J两组两轮认证均须在网上注册报名 未注册者
  • echarts折线图鼠标悬浮竖线_设置Echarts鼠标悬浮样式

    在option下 tooltip内添加以下代码 本文在后台进行传值 也就是其中的viewstate tooltip show true trigger axis show true default true showDelay 0 显示延时
  • FastDFS文件传输系统

    FastDFS是用c语言编写的一款开源的分布式文件系统 它是由淘宝资深架构师余庆编写并开源 FastDFS专为互联网量身定制 充分考虑了冗余备份 负载均衡 线性扩容等机制 并注重高可用 高性能等指标 使用FastDFS很 容易搭建一套高性能
  • chatGPT的到来,是否意味新时代的来临

    chatGPT是一种人工智能技术驱动的自然语言处理工具 是一种基于语言对话场景的语言模型 它使用了Transformer神经网络架构 也是GPT 3 5架构 功能具备上知天文下知地理 还可以进行撰写邮件 视频脚本 文案 翻译 代码等任务 由
  • 二叉树最近公共祖先

    给定一颗二叉树以及两个节点 查找两个节点最近的公共祖先 有可能公共祖先是两个节点中的其中一个 比如给定D E两个节点 其最近的公共祖先为B 非递归方式 层次遍历找到两个节点 遍历过程中 将每个节点以及它的父节点放到Map中存起来 需要使用到
  • 软件测试程序员需要掌握哪些理论知识

    一 软件测试理论知识 这个必备 当然 有些基本概念我都不清楚 所以 有时间 我也得去学习 复习下软件测试理论 这部分包括 软件测试基础理论和方法 例如软件生命周期 测试用例编写方法 软件测试原则 软件测试管理相关技术 软件各个阶段评审 软件
  • pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号

    试验环境 Linux marsboard 3 4 90 9 SMP PREEMPT Thu Mar 3 18 28 43 CST 2016 armv7l armv7l armv7l GNU Linux 注 A20核心板 通讯模块 加载成tt
  • ssm+java计算机毕业设计网络安全知识学习系统d85o6(程序+lw+源码+远程部署)

    项目运行 项目含有源码 见文末 文档 程序 数据库 配套开发软件 软件安装教程 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe M
  • Can you solve this equation?(二分查找的简单应用)

    Can you solve this equation Time Limit 1000MS Memory Limit 32768KB 64bit IO Format I64d I64u Submit Status Desc
  • Missing library: xdoclet-1.2.1.jar.的解决办法

    在eclipse中右击静态工程文件 点击Properties出现 错误原因是缺少xdoclet 1 2 1 jar包 在此地址可以下载 XDoclet Browse xdoclet 1 2 1 at SourceForge net 下载好后
  • 访问修饰符的权限

    浅谈C 中的访问修饰符权限 private protected public internal internal protected protetec private 1 private 1 private修饰的 同一个类中的成员 没有st
  • vector的使用及模拟实现(c++)

    一 STL概述 STL StandardTemplateLibrary 标准模板库 是惠普实验室开发的一系列软件的统称 现在主要出现在c 中 但是在引入c 之前该技术已经存在很长时间了 STL从广义上分为 容器 container 算法 a
  • GD32F103 USB 虚拟U盘实验一(内部Flash)

    这个直接抄官网的 官网是96M这里我改成72M 要注意把 rcu usb clock config RCU CKUSB CKPLL DIV1 5 这里分频 use HXTAL XD series CK HXTAL 8M CL series
  • 如何在Vim中更改颜色和主题

    大家好 我是良许 Vim是我们在Linux中非常常用的一款文本编辑器 Vim 是一款免费 开源的文本编辑器 它的功能和许多其他的文本编辑器大致相同 比如 Sublime 和 Notepad Vim既可以在命令行中执行 也可以在图形界面中操作
  • 解决:在python+selenium账号脚本登陆时,使用qq账号密码登陆百度账号出现的问题

    原始代码 def test loginBtn self 定位并点击登录按钮 log info 定位并点击登录按钮 self driver find element by xpath id u1 a 7 click log info 点击登录
  • QT设置标签显示位置

    QT设置标签显示位置 首先在mainwindow h文件的私有对象下声明标签 定义标签 QLabel chanel1 实现函数 关于图像显示的控件 tr里面可写可不写 chanel1 new QLabel tr chanel1 gt set
  • 故障树定性分析一定要严谨

    故障树分析主要分为定性分析和定量分析两大部分 定量分析的前提是需要明确各底事件的分布函数 故障率或故障发生概率等相关信息 而这些信息往往很难准确获取 定性分析却没有这些限制 因此应用范围更为广泛 定性分析通常包括两个部分 最小割集提取以及结
  • Android插件化资源的使用及动态加载 附demo

    http blog csdn net yulong0809 article details 59489396
  • 1054 求平均值 (20 分)(测试点3分析)

    本题的基本要求非常简单 给定 N 个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后 2 位 当你计算平均值的时候 不能把那些非法的数据算在内 输入格
  • 短信发送(java版)

    如果通过阿里云短信服务产品发送短信 需要做以下操作 1 登录阿里云 开启短信服务 2 创建短信api模板及短信内容类型 定义短信内容的时候如果有变量 则使用如 code 的形式 如果使用其他内容则查看产品文档 3 获取阿里云ACCESS I