天天看點

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

一.建立accessKey

1.登陸阿裡雲後,點選頭像出現AccessKey管理。

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

2.進入後點選繼續使用AccessKey

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

3.最後點選建立AccessKey即可

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

二.建立簽名和模闆

1.在主要制台搜尋短信服務

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

2.然後點選國内消息

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

3.在簽名管理中添加簽名

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

4.在模闆管理中添加模闆

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試

ps:簽名名稱和模闆CODE會在代碼中用到

三.代碼

MessageController.java

@RestController 
@RequestMapping("/msg/") 
public class MessageController { 
    @GetMapping("verify") 
    public SendSmsResponse getVerify(@RequestParam(name = "phone_number") String phoneNumber) throws ClientException { 
//        127.0.0.1:8081/msg/verify?phone_number=xxxx 
        //設定逾時時間-可自行調整 
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); 
        System.setProperty("sun.net.client.defaultReadTimeout", "10000"); 
        //初始化ascClient需要的幾個參數 
        final String product = "Dysmsapi";//短信API産品名稱(短信産品名固定,無需修改) 
        final String domain = "dysmsapi.aliyuncs.com";//短信API産品域名(接口位址固定,無需修改) 
        //替換成你的AK 
        final String accessKeyId = "xxxxx";//你的accessKeyId 
        final String accessKeySecret = "xxxxx";//你的accessKeySecret 
        //初始化ascClient,暫時不支援多region(請勿修改) 
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); 
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); 
        IAcsClient acsClient = new DefaultAcsClient(profile); 
        //組裝請求對象 
        SendSmsRequest request = new SendSmsRequest(); 
        //使用post送出 
        request.setMethod(MethodType.POST); 
        //必填:待發送手機号。支援以逗号分隔的形式進行批量調用,批量上限為1000個手機号碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式;發送國際/港澳台消息時,接收号碼格式為00+國際區号+号碼,如“0085200000000” 
        request.setPhoneNumbers(phoneNumber); 
        //必填:短信簽名-可在短信控制台中找到 
        request.setSignName("交通大資料資源服務平台"); 
        //必填:短信模闆-可在短信控制台中找到,發送國際/港澳台消息時,請使用國際/港澳台短信模版 
        request.setTemplateCode("SMS_193246861"); 
        //可選:模闆中的變量替換JSON串,如模闆内容為"親愛的${name},您的驗證碼為${code}"時,此處的值為 
        //友情提示:如果JSON中需要帶換行符,請參照标準的JSON協定對換行符的要求,比如短信内容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導緻JSON在服務端解析失敗 
        //request.setTemplateParam("{\"code\":\"988756\"}"); 
        //這裡是定義了随機函數,随機傳回6位。 
        String msgCode = SendMsgTest.getMsgCode(); 
        request.setTemplateParam("{\"code\":\"" + msgCode + "\"}"); 
        //請求失敗這裡會抛ClientException異常 
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); 
//            if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { 
//                //請求成功 
//                System.out.println("=====success===="); 
//            } else { 
//                System.out.println("=====fail======="); 
//            } 
        return sendSmsResponse; 
    } 
} 

           

SendMsgTest.java

/** 
 * 生成随機的6位數,短信驗證碼 
 * @return 
 */ 
public static String getMsgCode() { 
    int n = 6; 
    StringBuilder code = new StringBuilder(); 
    Random ran = new Random(); 
    for (int i = 0; i < n; i++) { 
        code.append(Integer.valueOf(ran.nextInt(10)).toString()); 
    } 
    return code.toString(); 
} 
           

四.測試

調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試
調用阿裡雲短信服務實作短信驗證碼一.建立accessKey二.建立簽名和模闆三.代碼四.測試