1. 程式人生 > >阿里雲簡訊傳送驗證碼-Java

阿里雲簡訊傳送驗證碼-Java

匯入相關包

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")) {
        //請求成功,需要做什麼自己加。
    }
}