使用阿里大於平台發送短信驗證碼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格式異常等小錯誤,需要調試修改,查看是否正確即可。