SpringBoot實(shí)現(xiàn)發(fā)送短信的示例代碼
一.說明
在https://office.ucpaas.com/ 注冊(cè)賬號(hào)并且認(rèn)證為個(gè)人開發(fā)者(需要身份證),這個(gè)不難,不多說了
短信的三方平臺(tái)有許多,對(duì)于選擇什么平臺(tái)要根據(jù)個(gè)人業(yè)務(wù)場(chǎng)景選擇,這里只是DEMO
二.創(chuàng)建平臺(tái)項(xiàng)目
創(chuàng)建平臺(tái)項(xiàng)目后可以獲得短信基礎(chǔ)配置,在調(diào)用短信接口時(shí)使用

三.創(chuàng)建短信模板
模板動(dòng)態(tài)參數(shù)設(shè)置規(guī)則為{1}{2}{3}...{n} (注意:在調(diào)用時(shí)參數(shù)之間拼接用逗號(hào)作為間隔符,這個(gè)見代碼描述)

四.使用RestTemplate調(diào)用短信接口
Spring Boot 版本:2.1.3
項(xiàng)目中使用了阿里的開源框架FastJson,用于JSON格式字符串與JSON對(duì)象及javaBean之間的轉(zhuǎn)換 ,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測(cè)試
/**
* 測(cè)試短信DEMO
* @Author Sans
* @CreateTime 2019/4/2 09:39
*/
@RestController
@RequestMapping("/sms")
public class TestController {
@Autowired
private RestTemplate restTemplate;
/**
* 單發(fā)短信測(cè)試
* @Author: Sans
* @CreateTime: 2019/4/2 10:06
*/
@RequestMapping(value = "/sendsmsTest",method = RequestMethod.GET)
public String sendsmsTest(){
//單發(fā)短信API
String url = "https://open.ucpaas.com/ol/sms/sendsms";
JSONObject jsonObject = new JSONObject();
//基礎(chǔ)配置,在開發(fā)平臺(tái)認(rèn)證后獲取
jsonObject.put("sid","ad024f8****************05d1614");
jsonObject.put("token","5ddbf62d4d****************e27402c");
jsonObject.put("appid","0ceaca4708****************76ec45f");
//模板ID,在開發(fā)平臺(tái)創(chuàng)建模板對(duì)應(yīng)的模板ID
jsonObject.put("templateid", "432116");
//模板對(duì)應(yīng)的參數(shù),參數(shù)之間拼接用逗號(hào)作為間隔符
jsonObject.put("param", "1315,500");
//要發(fā)送的手機(jī)號(hào)
jsonObject.put("mobile", "用戶的手機(jī)號(hào)");
//用戶透?jìng)鱅D,隨狀態(tài)報(bào)告返回,可以不填寫
jsonObject.put("uid","");
String json = JSONObject.toJSONString(jsonObject);
//使用restTemplate進(jìn)行訪問遠(yuǎn)程服務(wù)
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;
}
/**
* 群發(fā)短信測(cè)試
* @Author: Sans
* @CreateTime: 2019/4/2 11:23
*/
@RequestMapping(value = "/sendBatchsmsTest",method = RequestMethod.GET)
public String sendBatchsmsTest(){
//群發(fā)短信API
String url = "https://open.ucpaas.com/ol/sms/sendsms_batch";
JSONObject jsonObject = new JSONObject();
//基礎(chǔ)配置,在開發(fā)平臺(tái)認(rèn)證后獲取
jsonObject.put("sid","ad024f8****************05d1614");
jsonObject.put("token","5ddbf62d4d****************e27402c");
jsonObject.put("appid","0ceaca4708****************76ec45f");
//模板ID,在開發(fā)平臺(tái)創(chuàng)建模板對(duì)應(yīng)的模板ID
jsonObject.put("templateid", "432116");
//模板對(duì)應(yīng)的參數(shù),參數(shù)之間拼接用逗號(hào)作為間隔符
jsonObject.put("param", "1315,500");
//群發(fā)多個(gè)手機(jī)號(hào)之間要用逗號(hào)作為間隔符
jsonObject.put("mobile", "用戶的手機(jī)號(hào)A,用戶的手機(jī)號(hào)B");
//用戶透?jìng)鱅D,隨狀態(tài)報(bào)告返回,可以不填寫
jsonObject.put("uid","");
String json = JSONObject.toJSONString(jsonObject);
//使用restTemplate進(jìn)行訪問遠(yuǎn)程服務(wù)
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;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開發(fā)的實(shí)踐
- springboot整合RabbitMQ發(fā)送短信的實(shí)現(xiàn)
- SpringBoot使用榛子云實(shí)現(xiàn)手機(jī)短信發(fā)送驗(yàn)證碼
- Springboot實(shí)現(xiàn)Java阿里短信發(fā)送代碼實(shí)例
- SpringBoot+Security 發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn)
- Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能
- Spring Boot實(shí)現(xiàn)微信小程序登錄
- Spring Boot 2結(jié)合Spring security + JWT實(shí)現(xiàn)微信小程序登錄
- springboot+jwt+springSecurity微信小程序授權(quán)登錄問題
- Spring?Boot?如何生成微信小程序短連接及發(fā)送短信在短信中打開小程序操作
相關(guān)文章
java abstract class interface之間的區(qū)別介紹
含有abstract修飾符的class即為抽象類,abstract 類不能創(chuàng)建的實(shí)例對(duì)象,abstract class類中定義抽象方法必須在具體(Concrete)子類中實(shí)現(xiàn),所以,不能有抽象構(gòu)造方法或抽象靜態(tài)方法2012-11-11
基于java實(shí)現(xiàn)顏色拾色器并打包成exe
這篇文章主要為大家詳細(xì)介紹了如何基于java編寫一個(gè)簡(jiǎn)單的顏色拾色器并打包成exe文件,文中的示例代碼講解詳細(xì),需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
認(rèn)識(shí)Java中的Stub與StubQueue
StubQueue是用來保存生成的本地代碼的Stub隊(duì)列,隊(duì)列每一個(gè)元素對(duì)應(yīng)一個(gè)InterpreterCodelet對(duì)象,InterpreterCodelet對(duì)象繼承自抽象基類Stub,下面我們介紹一下StubQueue類及相關(guān)類Stub、InterpreterCodelet類和CodeletMark類。需要的的下伙伴可以參考下面文字內(nèi)容2021-09-09
Spring如何替換掉默認(rèn)common-logging.jar
這篇文章主要介紹了Spring如何替換掉默認(rèn)common-logging.jar,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Spring MVC實(shí)現(xiàn)文件上傳和下載
這篇文章主要為大家詳細(xì)介紹了Spring MVC實(shí)現(xiàn)文件上傳和下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04

