首页 > 编程 > Java > 正文

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

2019-11-26 09:03:57
字体:
来源:转载
供稿:网友

一.说明

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 */@Configurationpublic 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;  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表