一、首先进入云之讯注册账户

链接:https://office.ucpaas.com/.

进入开发者控制台,获取对应的请求地址、应用ID、用户ID和鉴权token

进行认证

创建模板

二、Springboot集成短信发送

1、Maven依赖

阿里的开源框架FastJson,用于JSON格式字符串与JSON对象及javaBean之间的转换

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version></dependency>
</dependencies>

2、application.properties

# 短信服务
# 应用ID
message.appId= xxxxxxxxxxxxxxxxxxxx
# 用户sid
message.account.sid= xxxxxxxxxxxxxxxxxxxx
# 鉴权token
message.auth.token= xxxxxxxxxxxxxxxxxxxx
# 请求地址
message.rest.url= https://open.ucpaas.com/ol/sms/{function}
# 默认手机号
message.default.phone = xxxxxxxxxxx
# 默认模板
message.defaule.templateId = xxxxxx
功能 接口 请求地址 描述
发送短信 指定模板单发 https://open.ucpaas.com/ol/sms/sendsms 指定变量/固定模板单发
~ 指定模板群发 https://open.ucpaas.com/ol/sms/sendsms_batch 指定变量/固定模板群发
状态报告 推送状态报告 / 实时推送短信发送状态报告。
模板接口 增加模板 https://open.ucpaas.com/ol/sms/addsmstemplate 通过接口增加模板
~ 查询模板 https://open.ucpaas.com/ol/sms/getsmstemplate 获取账户内的全部模板
~ 编辑模板 https://open.ucpaas.com/ol/sms/editsmstemplate 编辑指定模板
~ 删除模板 https://open.ucpaas.com/ol/sms/deletesmstemplate 删除指定模板
3、配置类
public class MessageConfig implements Serializable {/***  应用ID*/@Value("${message.appId}")private String appId;/*** 用户sid*/@Value("${message.account.sid}")private String accountSid;/***  鉴权密钥*/@Value("${message.auth.token}")private String authToken;/***  请求地址*/@Value("${message.rest.url}")private String restUrl;/***  短信模板ID*/@Value("${message.default.templateId}")private String templateId;/***  手机号*/@Value("${message.default.phone}")private String phone;public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getAccountSid() {return accountSid;}public void setAccountSid(String accountSid) {this.accountSid = accountSid;}public String getAuthToken() {return authToken;}public void setAuthToken(String authToken) {this.authToken = authToken;}public String getRestUrl() {return restUrl;}public void setRestUrl(String restUrl) {this.restUrl = restUrl;}public String getTemplateId() {return templateId;}public void setTemplateId(String templateId) {this.templateId = templateId;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}
}
4、RestTemplate配置类
/***  RestTemplate配置类*/
@Configuration
public class RestTemplateConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
}
5、SendMessageService
public interface SendMessageService {/***  单发短信** @param messageConfig 短信配置* @return*/String sendMessage(MessageConfig messageConfig);/*** 群发短信** @param messageConfig 短信配置* @return*/String sendBatchMessage(MessageConfig messageConfig);
}
6、SendMessageServiceImpl
@Service
public class SendMessageServiceImpl implements SendMessageService {private static final Logger logger = LoggerFactory.getLogger(SendMessageServiceImpl.class);@Autowiredprivate RestTemplate restTemplate;@Overridepublic String sendMessage(MessageConfig messageConfig) {logger.info("sendMessage start,{}", JavaBeanUtil.jacksonToString(messageConfig));Assert.notNull(messageConfig,"发送短信配置不能为空");//单发邮件APIString url = messageConfig.getRestUrl()+"sendsms";//使用restTemplate进行访问远程服务HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON_UTF8);HttpEntity<String> httpEntity = new HttpEntity<String>(getParameter(messageConfig),headers);return restTemplate.patchForObject(url,httpEntity,String.class);}@Overridepublic String sendBatchMessage(MessageConfig messageConfig) {logger.info("sendBatchMessage start,{}", JavaBeanUtil.jacksonToString(messageConfig));Assert.notNull(messageConfig,"发送短信配置不能为空");//群发邮件APIString url = messageConfig.getRestUrl()+"sendsms_batch";HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON_UTF8);HttpEntity<String> httpEntity = new HttpEntity<String>(getParameter(messageConfig),headers);return restTemplate.patchForObject(url,httpEntity,String.class);}/*** 配置发送参数** @param messageConfig* @return*/public String getParameter(MessageConfig messageConfig) {JSONObject jsonObject = new JSONObject();//基础配置jsonObject.put("sid",messageConfig.getAccountSid());jsonObject.put("token",messageConfig.getAuthToken());jsonObject.put("appid",messageConfig.getAppId());//模板ID 参数之间用逗号作为间隔符jsonObject.put("template",messageConfig.getTemplateId());//要发送的手机号,多个手机号用逗号分隔jsonObject.put("mobile",messageConfig.getPhone());//用户ID,随状态报告返回,可以不填写jsonObject.put("uid","");return JSONObject.toJSONString(jsonObject);}
}
7、SendMessageController
@RestController
@ResponseResult//用于对接口响应体进行包装的注解
@RequestMapping("/send-message")
@Api(value = "发送短信接口",tags = {"发送短信接口"})
public class SendMessageController {@Autowiredprivate SendMessageService sendMessageService;@PostMapping("/simple")@ApiOperation(value = "单发消息",notes = "单发手机短信消息")public String sendMessage(MessageConfig messageConfig) {return sendMessageService.sendMessage(messageConfig);}@PostMapping("/batch")@ApiOperation(value = "群发消息",notes = "群发手机短信消息")public String sendBatchMessage(MessageConfig messageConfig) {return sendMessageService.sendBatchMessage(messageConfig);}
}

Springboot实现手机短信服务相关推荐

  1. 阿里大鱼短信接口教程php,ECSHOP短信接口【ECSHOP阿里大鱼短信】ECSHOP短信插件手机短信服务设置教程-ECSHOP教程网...

    各位朋友大家好,感谢大家对ECSHOP教程网的关注与支持!今天为大家详细解说一下ECSHOP注册短信接口[ECSHOP阿里大鱼短信插件]ECSHOP手机短信服务设置教程: 1.首先登陆:http:// ...

  2. vue+springboot+阿里云短信服务(集成redis实现验证码登录业务)

    阿里云短信服务-介绍 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知类和营销类短信:国内验 ...

  3. SpringBoot+阿里云短信服务实现发送短信验证码功能

    目录 一.登陆阿里云,开通短信服务(收费的,需要充值,1元能发20条左右),并获取AccessKeyId和AccessKeySecret 二.创建短信模板与签名 三.引入依赖 四.准备工作已完成,编码 ...

  4. SpringBoot整合手机短信验证码

    手机短信验证码技术 1.流程图 前端点击发送手机验证码 后端判断恶意请求拦截[手机号码限制次数 - redis设置过期时间,自增 - 大于10次直接抛异常 - 没有做] 验证图形验证码是否正确,不正确 ...

  5. 手机短信服务接口合作协议原理与分析

    1 短信协议 1.1 分发中心接口 分发中心接口分为TCP接口和HTTP接口协议,都用的是文本指令方式,也就是说每条指令都是以回程换行结束的,服务端只有接收到回程换行才会进入指令处理.  为了安全,无 ...

  6. springboot+springsecurity+阿里云短信服务验证实现注册登录

    使用springboot+security+Aliyun短信服务实现注册登录 为了实现个人博客部分的登录注册,我采用了阿里云短信服务发送验证码,后端比对验证码的方式完成注册,现在功能还不完全,以后这个 ...

  7. Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信

    短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口. 首先,注册Twilio: https ...

  8. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

  9. 基于SpringBoot+腾讯云短信服务实现接收手机验证码功能

    在腾讯云中配置需要的服务 申请签名和短信模板 创建应用 在项目application.yml中配置相关参数 在项目中安装腾讯云短信服务的依赖包 <!--腾讯云--><dependen ...

最新文章

  1. DataPipeline联合Confluent Kafka Meetup上海站
  2. (数据结构与算法)数组和单链表实现栈的基本操作
  3. 在MySQL 5.7下排查内存泄露和OOM问题全过程
  4. fasttext初步使用
  5. python no module named pandas_【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy...
  6. CentOS下通过postfix使用自己的gmail邮箱发送邮件
  7. 计算机win7截长屏,电脑截长图【应对法子】
  8. URAL 1787. Turn for MEGA
  9. [Xilinx FPGA] #2 Xilinx ISE Help Notes #1 -1.8.2019
  10. RGL: A Simple yet Effective Relation.. 文章详解
  11. 用微软的云计算来远程管理自己的电脑
  12. Linux Cannot assign requested address
  13. 不断奔跑,却忘了来时的路
  14. VsCode使用及常用命令汇总(Win10)
  15. 浅谈TC10休眠唤醒规范
  16. 中阿博览会搭建丝路新平台 共享中阿企业发展新机遇
  17. 个人信息管理系统数据表设计
  18. wx-calendar日历组件使用小技巧
  19. 仿微信列表显示时间(年月日、昨天、时间)
  20. cuda编程入门:使用cuda实现矩阵加法

热门文章

  1. 通知公众平台php,微信公众平台开发模板消息
  2. 单元测试的重要性【转自”至简李云“博客】
  3. CTF Crypto中涉及的AES题目
  4. 上dj是什么意思_彩超上显示“乳腺结节”到底是什么意思?
  5. iOS 第三方分享、支付原生平台集成
  6. SiTime硅晶振和石英晶振的冲击和振动性能比较
  7. 基于TMS32F28035的CLA学习
  8. Redis基于内存非关系型数据库
  9. 权限管理系统数据库设计的简单构思
  10. linux 解锁用户被锁