一.說明
在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;
}
}
複製程式碼
新人第一次發帖,希望大佬們給出寶貴的意見