使用阿里大於實現手機驗證碼

使用阿里大於平臺發送短信驗證碼java代碼實現
1.首先須要到阿里雲平臺找到阿里大於官網。(裏面有詳細的API介紹。)

2.必須的步驟是充錢(一條信息四分錢)充值位置如圖java

 

3.實現該接口要作的準備
(1).該接口必須得獲取AK(AccessKey)
獲得如下信息,這裏面的accessKeyId值accessKeySecret值要在後面的代碼中使用。
(2)添加簽名名稱
這裏面的簽名名稱在後面的代碼中也要使用。
(3)添加短信模板
這裏面的模板CODE在後面的代碼中做爲TemplateCode要使用。
4.導入相應的jar包,建立類,修改對應的參數。(jar能夠去官網下載,代碼官網上面也有)2個jar包,一個aliyun-java-sdk-core包,另一個是alicom-dysms-api包。
代碼以下:
 1 //設置超時時間-可自行調整
 2 System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
 3 System.setProperty("sun.net.client.defaultReadTimeout", "10000");
 4 //初始化ascClient須要的幾個參數
 5 final String product = "Dysmsapi";//短信API產品名稱(短信產品名固定,無需修改)
 6 final String domain = "dysmsapi.aliyuncs.com";//短信API產品域名(接口地址固定,無需修改)
 7 //替換成你的AK
 8 final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,參考本文檔步驟2
 9 final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,參考本文檔步驟2
10 //初始化ascClient,暫時不支持多region(請勿修改)
11 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
12 accessKeySecret);
13 DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
14 IAcsClient acsClient = new DefaultAcsClient(profile);
15 //組裝請求對象
16 SendSmsRequest request = new SendSmsRequest();
17 //使用post提交
18 request.setMethod(MethodType.POST);
19 //必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限爲1000個手機號碼,批量調用相對於單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式;發送國際/港澳臺消息時,接收號碼格式爲00+國際區號+號碼,如「0085200000000」
20 request.setPhoneNumbers("1500000000");
21 //必填:短信簽名-可在短信控制檯中找到
22 request.setSignName("雲通訊");
23 //必填:短信模板-可在短信控制檯中找到
24 request.setTemplateCode("SMS_1000000");
25 //可選:模板中的變量替換JSON串,如模板內容爲"親愛的${name},您的驗證碼爲${code}"時,此處的值爲
26 //友情提示:若是JSON中須要帶換行符,請參照標準的JSON協議對換行符的要求,好比短信內容中包含\r\n的狀況在JSON中須要表示成\\r\\n,不然會致使JSON在服務端解析失敗
27 request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
28 //可選-上行短信擴展碼(擴展碼字段控制在7位或如下,無特殊需求用戶請忽略此字段)
29 //request.setSmsUpExtendCode("90997");
30 //可選:outId爲提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者
31 request.setOutId("yourOutId");
32 //請求失敗這裏會拋ClientException異常
33 SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
34 if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
35 //請求成功
36 }

 

5.總結
這裏主要總結一下可能會出現的錯誤,第一次是包沒有導入正確,代碼中報沒有找到某個類的編譯異常,這裏須要導入正確的包便可。第二次是忘了充錢(尷尬,因此把充錢放到了前面位置)。這裏能夠打斷點Debug一行一行跑,根據異常進行修改,最後根據sendSmsResponse報的餘額不足異常信息才知道(必須Debug模式下查看,由於異常信息沒有打印出來),還有就是會出現前面傳入的參數不正確,json格式異常等小錯誤,須要調試修改,查看是否正確便可。
相關文章
相關標籤/搜索