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


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

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

 

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格式異常等小錯誤,需要調試修改,查看是否正確即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM