開發應用中,註冊登陸流程中須要用到短信驗證SDK,因此對第三方短信驗證碼服務平臺作了一下調研。api
短信驗證碼的做用:服務器
- 肯定手機號的真實性
- 防止大規模惡意註冊
該流程中,SDK與MOB的服務器有兩次交互過程網絡
所找到的兩個提供短信驗證碼服務的SDK分別是:app
二者都下載下來demo和SDK進行測試過.
聚合數據的SDK包含了不少服務,短信驗證碼只是其中一種。短信API接口,接口數據一大堆,從一個角度看,可定製性強,但從實際使用看,極其簡單的一個短信驗證碼功能,做爲用戶,我但願我所提供的輸入就是一個String phoneNumber,其餘的東西那都是你的實現細節。我不須要關心。Mob作到了這樣簡單,因此好用些。ide
MOB短信SDK集成文檔
這個sdk使用起來至關簡單,測試
//短信回調事件,處理獲取驗證碼和驗證反饋事件 EventHandler eventHandler = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { if (result != SMSSDK.RESULT_COMPLETE) { Log.v("cc", "鏈接短信驗證碼服務器失敗"); ((Throwable) data).printStackTrace(); return; } //回調完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //驗證碼驗證成功,服務器的反饋事件 Log.v("cc", "驗證成功"); register(); } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { //手機請求驗證碼,服務器在發送驗證碼以後,給與的網絡反饋 Log.v("cc", "已經發送驗證碼"); } } };
這個EventHandler是SDK註冊過程的回調接口,其中分別有對各個驗證狀態和過程的響應狀態。須要稍微吐槽一下的是,僅僅去看狀態名是很難直接認識到這個狀態所對應的是哪一個功能的,官方的文檔也沒有說清楚,仍是要經過下載demo去看代碼測試,才能明白其中的細節。好在SDK自己作的極其簡單。網站
初始化SMSSDK:兩個參數分別是本身的app所對應的兩個參數,須要去網站申請。
SMSSDK.initSDK(RegisterActivity.this, "a01257a383f0", "*********************");
this
註冊SDK回調
SMSSDK.registerEventHandler(eventHandler); //註冊短信回調
code
請求驗證碼
SMSSDK.getVerificationCode("86", mUserName);
教程
回傳驗證碼以肯定輸入的驗證碼是否正確
SMSSDK.submitVerificationCode("86", mUserName, varifyCode);
在使用過程當中,程序一開始先初始化SMSSDK,而後初始化EventHandler(),egisterEventHandler(), 請求驗證碼和回傳驗證碼方法根據業務邏輯放到合適的地方去就能夠了,發送後的事件都在EventHandler裏相應的狀態中處理。總的來看,MOB SDK在使用的過程當中沒有遇到什麼困惑。開發者友好型SDK。
(另外一個槽點是,官網沒有對Android Studio的使用教程,一個下載包裏面有一個教程,可是官網上是看不到的,對於用AS的用戶有必定的干擾)
測試期間,天天200條免費 上線以後,天天10000條免費 多的須要充值。