SpringBoot实现发送短信的示例代码
一.说明
在https://office.ucpaas.com/ 注册账号并且认证为个人开发者(需要身份证),这个不难,不多说了
短信的三方平台有许多,对于选择什么平台要根据个人业务场景选择,这里只是DEMO
二.创建平台项目
创建平台项目后可以获得短信基础配置,在调用短信接口时使用
三.创建短信模板
模板动态参数设置规则为{1}{2}{3}...{n} (注意:在调用时参数之间拼接用逗号作为间隔符,这个见代码描述)
四.使用RestTemplate调用短信接口
Spring Boot 版本:2.1.3
项目中使用了阿里的开源框架FastJson,用于JSON格式字符串与JSON对象及javaBean之间的转换 ,Maven依赖如下
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.45</version> </dependency> </dependencies>
建立RestTemplate配置类,将RestTemplate注入容器中
/** * RestTemplate配置类 * @Author Sans * @CreateTime 2019/4/2 09:55 */ @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }
Controller测试
/** * 测试短信DEMO * @Author Sans * @CreateTime 2019/4/2 09:39 */ @RestController @RequestMapping("/sms") public class TestController { @Autowired private RestTemplate restTemplate; /** * 单发短信测试 * @Author: Sans * @CreateTime: 2019/4/2 10:06 */ @RequestMapping(value = "/sendsmsTest",method = RequestMethod.GET) public String sendsmsTest(){ //单发短信API String url = "https://open.ucpaas.com/ol/sms/sendsms"; JSONObject jsonObject = new JSONObject(); //基础配置,在开发平台认证后获取 jsonObject.put("sid","ad024f8****************05d1614"); jsonObject.put("token","5ddbf62d4d****************e27402c"); jsonObject.put("appid","0ceaca4708****************76ec45f"); //模板ID,在开发平台创建模板对应的模板ID jsonObject.put("templateid", "432116"); //模板对应的参数,参数之间拼接用逗号作为间隔符 jsonObject.put("param", "1315,500"); //要发送的手机号 jsonObject.put("mobile", "用户的手机号"); //用户透传ID,随状态报告返回,可以不填写 jsonObject.put("uid",""); String json = JSONObject.toJSONString(jsonObject); //使用restTemplate进行访问远程服务 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); HttpEntity<String> httpEntity = new HttpEntity<String>(json, headers); String result = restTemplate.postForObject(url, httpEntity, String.class); return result; } /** * 群发短信测试 * @Author: Sans * @CreateTime: 2019/4/2 11:23 */ @RequestMapping(value = "/sendBatchsmsTest",method = RequestMethod.GET) public String sendBatchsmsTest(){ //群发短信API String url = "https://open.ucpaas.com/ol/sms/sendsms_batch"; JSONObject jsonObject = new JSONObject(); //基础配置,在开发平台认证后获取 jsonObject.put("sid","ad024f8****************05d1614"); jsonObject.put("token","5ddbf62d4d****************e27402c"); jsonObject.put("appid","0ceaca4708****************76ec45f"); //模板ID,在开发平台创建模板对应的模板ID jsonObject.put("templateid", "432116"); //模板对应的参数,参数之间拼接用逗号作为间隔符 jsonObject.put("param", "1315,500"); //群发多个手机号之间要用逗号作为间隔符 jsonObject.put("mobile", "用户的手机号A,用户的手机号B"); //用户透传ID,随状态报告返回,可以不填写 jsonObject.put("uid",""); String json = JSONObject.toJSONString(jsonObject); //使用restTemplate进行访问远程服务 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); HttpEntity<String> httpEntity = new HttpEntity<String>(json, headers); String result = restTemplate.postForObject(url, httpEntity, String.class); return result; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- SpringBoot项目实现短信发送接口开发的实践
- springboot整合RabbitMQ发送短信的实现
- SpringBoot使用榛子云实现手机短信发送验证码
- Springboot实现Java阿里短信发送代码实例
- SpringBoot+Security 发送短信验证码的实现
- Springboot实现阿里云通信短信服务有关短信验证码的发送功能
- Spring Boot实现微信小程序登录
- Spring Boot 2结合Spring security + JWT实现微信小程序登录
- springboot+jwt+springSecurity微信小程序授权登录问题
- Spring Boot 如何生成微信小程序短连接及发送短信在短信中打开小程序操作
相关文章
SpringBoot使用freemarker导出word文件方法详解
这篇文章主要介绍了SpringBoot使用freemarker导出word文件方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-11-11详解在Spring3中使用注解(@Scheduled)创建计划任务
本篇文章主要介绍了详解在Spring3中使用注解(@Scheduled)创建计划任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-03-03SpringController返回值和异常自动包装的问题小结
今天遇到一个需求,在不改动原系统代码的情况下,将Controller的返回值和异常包装到一个统一的返回对象中去,下面通过本文给大家介绍SpringController返回值和异常自动包装的问题,需要的朋友可以参考下2024-03-03浅谈spring的重试机制无效@Retryable@EnableRetry
这篇文章主要介绍了浅谈spring的重试机制无效@Retryable@EnableRetry,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09在MyBatisPlus中使用@TableField完成字段自动填充的操作
这篇文章主要介绍了在MyBatisPlus中使用@TableField完成字段自动填充的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
最新评论