SpringBoot 實現發送短信

一.說明

在https://office.ucpaas.com/ 註冊帳號而且認證爲我的開發者(須要身份證),這個不難,很少說了java

短信的三方平臺有許多,對於選擇什麼平臺要根據我的業務場景選擇,這裏只是DEMOweb

二.建立平臺項目

建立平臺項目後能夠得到短信基礎配置,在調用短信接口時使用 spring

三.建立短信模板

模板動態參數設置規則爲{1}{2}{3}...{n} (注意:在調用時參數之間拼接用逗號做爲間隔符,這個見代碼描述) json

四.使用RestTemplate調用短信接口

Spring Boot 版本:2.1.3app

項目中使用了阿里的開源框架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注入容器中spring-boot

/** * RestTemplate配置類 * @Author Sans * @CreateTime 2019/4/2 09:55 */
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
複製代碼

Controller測試post

/** * 測試短信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;
    }
}
複製代碼

新人第一次發帖,但願大佬們給出寶貴的意見測試

相關文章
相關標籤/搜索