SpringBoot实现发送短信的示例代码

网友投稿 330 2023-01-08


SpringBoot实现发送短信的示例代码

一.说明

在https://office.ucpaas.com/ 注册账号并且认证为个人开发者(需要身份证),这个不难,不多说了

短信的三方平台有许多,对于选择什么平台要根据个人业务场景选择,这里只是DEMO

二.创建平台项目

创建平台项目后可以获得短信基础配置,在调用短信接口时使用

三.创建短信模板

模板动态参数设置规则为{1}{2}{3}...{n} (注意:在调用时参数之间拼接用逗号作为间隔符,这个见代码描述)

四.使用RestTemplate调用短信接口

Spring Boot 版本:2.1.3

项目中使用了阿里的开源框架Fastjson,用于JSON格式字符串与JSON对象及javaBean之间的转换 ,Maven依赖如下

org.springframework.boot

spring-boot-starter-web

2.1.3.RELEASE

com.alibaba

fastjson

1.2.45

建立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();

fDYMpAWvud //基础配置,在开发平台认证后获取

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 httpEntity = new HttpEntity(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");

//模板对fDYMpAWvud应的参数,参数之间拼接用逗号作为间隔符

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 httpEntity = new HttpEntity(json, headers);

String result = restTemplate.postForObject(url, httpEntity, String.class);

return result;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:子类怎么实现接口中的方法(子类实现接口后有什么要求)
下一篇:自动框架接口测试(接口测试自动化框架)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~