java開通短信驗證功能詳解

具體步驟:html

步驟 1 建立阿里雲帳號

爲了訪問短信服務,您須要有一個阿里雲帳號。若是沒有,可首先按照以下步驟建立阿里雲帳號:java

  1. 訪問阿里雲 官方網站,單擊頁面上的 免費註冊 按鈕。
  2. 按照屏幕提示完成註冊流程並進行實名認證,短信服務只支持實名認證用戶使用。爲了更好地使用阿里雲服務,建議儘快完成實名認證,不然部分阿里雲服務將沒法使用。具體實名認證流程,請參考 這裏

步驟 2 獲取阿里雲訪問密鑰

爲了使用短信發送API-JAVA SDK,您必須申請阿里雲的訪問密鑰。api

阿里雲訪問祕鑰是阿里云爲用戶使用 API(非控制檯)來訪問其雲資源設計的「安全口令」。您能夠用它來簽名 API 請求內容以經過服務端的安全驗證。安全

該訪問祕鑰成對(AccessKeyId 與 AccessKeySecret)生成和使用。每一個阿里雲用戶能夠建立多對訪問祕鑰,且可隨時啓用(Active)、禁用(Inactive)或者刪除已經生成的訪問祕鑰對。dom

您能夠經過阿里雲控制檯的 祕鑰管理頁面 建立、管理全部的訪問祕鑰對,且保證它處於「啓用」狀態。因爲訪問祕鑰是阿里雲對 API 請求進行安全驗證的關鍵因子,請妥善保管你的訪問祕鑰。若是某些祕鑰對出現泄漏風險,建議及時刪除該祕鑰對並生成新的替代祕鑰對。工具

步驟 3  在控制檯完成模板與簽名的申請,得到調用接口必備的參數

短信簽名post

根據用戶屬性來建立符合自身屬性的簽名信息。企業用戶須要上傳相關企業資質證實,我的用戶須要上傳證實我的身份的證實。網站

注意:短信簽名須要審覈經過後纔可使用。阿里雲

短信模板spa

短信模板,即具體發送的短信內容。

短信模板能夠支持驗證碼、短信通知、推廣短信三種模式。驗證碼和短信通知,經過變量替換實現個性短信定製。推廣短信不支持在模板中添加變量。

短信模板須要審覈經過後纔可使用。

爲了成功發送一條短信通知,您至少須要完成如下步驟

1、在控制檯完成短信簽名與短信模板的申請,得到調用接口必備的參數

在「短信簽名」頁面完成簽名的申請,得到短信簽名的字符串 簽名申請手冊

在「短信模板」頁面完成模板的申請,得到模板ID。模板申請手冊

 

參數

入參列表
參數名稱 參數類型 必填與否 樣例取值 參數說明
PhoneNumbers String 必須 15000000000 短信接收號碼,支持以逗號分隔的形式進行批量調用,批量上限爲1000個手機號碼,批量調用相對於單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式
SignName String 必須 雲通訊 短信簽名
TemplateCode String 必須 SMS_0000 短信模板ID
TemplateParam String 可選 {「code」:」1234」,」product」:」ytx」} 短信模板變量替換JSON串,友情提示:若是JSON中須要帶換行符,請參照標準的JSON協議對換行符的要求,好比短信內容中包含\r\n的狀況在JSON中須要表示成\r\n,不然會致使JSON在服務端解析失敗
SmsUpExtendCode String 可選 90999 上行短信擴展碼,無特殊須要此字段的用戶請忽略此字段
OutId String 可選 abcdefgh 外部流水擴展字段
出參列表
出參名稱 出參類型 樣例取值 參數說明
RequestId String 8906582E-6722 請求ID
Code String OK 狀態碼-返回OK表明請求成功,其餘錯誤碼詳見錯誤碼列表
Message String 請求成功 狀態碼的描述
BizId String 134523^4351232 發送回執ID,可根據該ID查詢具體的發送狀態

技術對接步驟

1:下載SDK工具包

SDK工具包中一共包含了2個類庫,一個aliyun-java-sdk-core包,另一個是alicom-dysms-api包,將這兩個包執行mvn package命令或者mvn deploy命令打包出相應的jar包,添加到工程類庫中依賴使用。

SDK&DEMO[下載地址]

2: 編寫樣例程序-------》複製便可;導入相應的接口鏈接

注:有備註無需修改的位置請勿改動。

//設置超時時間-可自行調整

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(請勿修改)

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個手機號碼,批量調用相對於單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式

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);

if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {

//請求成功

}

相關網址:

短信發送API

https://help.aliyun.com/document_detail/55284.html?spm=5176.product44282.4.4.sF1kcZ

登錄API

https://dysms.console.aliyun.com/dysms.htm?spm=5176.doc55330.2.3.w5nf8x#/develop/sign

登錄以後點擊左邊的:點擊簽名管理進行申請;點擊模板管理進行模板申請;成功以後在java代碼中進行配置引用便可

 

錯誤碼列表

Code 描述
OK 請求成功
isp.RAM_PERMISSION_DENY RAM權限DENY
isv.OUT_OF_SERVICE 業務停機
isv.PRODUCT_UN_SUBSCRIPT 未開通雲通訊產品的阿里雲客戶
isv.PRODUCT_UNSUBSCRIBE 產品未開通
isv.ACCOUNT_NOT_EXISTS 帳戶不存在
isv.ACCOUNT_ABNORMAL 帳戶異常
isv.SMS_TEMPLATE_ILLEGAL 短信模板不合法
isv.SMS_SIGNATURE_ILLEGAL 短信簽名不合法
isv.INVALID_PARAMETERS 參數異常
isp.SYSTEM_ERROR 系統錯誤
isv.MOBILE_NUMBER_ILLEGAL 非法手機號
isv.MOBILE_COUNT_OVER_LIMIT 手機號碼數量超過限制
isv.TEMPLATE_MISSING_PARAMETERS 模板缺乏變量
isv.BUSINESS_LIMIT_CONTROL 業務限流
isv.INVALID_JSON_PARAM JSON參數不合法,只接受字符串值
isv.BLACK_KEY_CONTROL_LIMIT 黑名單管控
isv.PARAM_LENGTH_LIMIT 參數超出長度限制
isv.PARAM_NOT_SUPPORT_URL 不支持URL
isv.AMOUNT_NOT_ENOUGH 帳戶餘額不足

注:查詢全部錯誤碼及解決辦法請點擊短信接口調用錯誤碼

相關文章
相關標籤/搜索