SpringBoot 實現傳送簡訊

Sans_發表於2019-04-13

一.說明

在https://office.ucpaas.com/ 註冊賬號並且認證為個人開發者(需要身份證),這個不難,不多說了

簡訊的三方平臺有許多,對於選擇什麼平臺要根據個人業務場景選擇,這裡只是DEMO

二.建立平臺專案

建立平臺專案後可以獲得簡訊基礎配置,在呼叫簡訊介面時使用

SpringBoot 實現傳送簡訊

三.建立簡訊模板

模板動態引數設定規則為{1}{2}{3}...{n} (注意:在呼叫時引數之間拼接用逗號作為間隔符,這個見程式碼描述)

SpringBoot 實現傳送簡訊

四.使用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;
    }
}
複製程式碼

新人第一次發帖,希望大佬們給出寶貴的意見

相關文章