阿里雲簡訊傳送驗證碼-Java
阿新 • • 發佈:2019-01-31
匯入相關包
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile;
實現過程
public static SendSmsResponse sendSms(String phoneNumber, int code) throws ClientException { //設定超時時間-可自行調整 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 = "yourAccessKeyId";//你的accessKeyId,參考本文件步驟2 final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,參考本文件步驟2 //初始化ascClient,暫時不支援多region(請勿修改) // "cn-hangzhou"預設即可 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("1500000000"); //必填:簡訊簽名-可在簡訊控制檯中找到 request.setSignName("雲通訊"); //必填:簡訊模板-可在簡訊控制檯中找到,傳送國際/港澳臺訊息時,請使用國際/港澳臺簡訊模版 request.setTemplateCode("SMS_1000000"); //可選:模板中的變數替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為 //友情提示:如果JSON中需要帶換行符,請參照標準的JSON協議對換行符的要求,比如簡訊內容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導致JSON在服務端解析失敗 request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}"); //可選-上行簡訊擴充套件碼(擴充套件碼欄位控制在7位或以下,無特殊需求使用者請忽略此欄位) //request.setSmsUpExtendCode("90997"); //可選:outId為提供給業務方擴充套件欄位,最終在簡訊回執訊息中將此值帶回給呼叫者 request.setOutId("yourOutId"); //請求失敗這裡會拋ClientException異常 SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); return sendSmsResponse; } publi void myMethod(){ int code = (int) ((Math.random()*9+1)*100000); //驗證碼可以用隨機生成 SendSmsResponse sendSms = sendSms("888888888",code); if(sendSms .getCode() != null && sendSms .getCode().equals("OK")) { //請求成功,需要做什麼自己加。 } }