實現京東商城手機註冊獲取驗證碼

PS:如果覺得文章太長,你也可觀看該課程的視頻,親,裏面還有高清,無碼的福利喔

  • 歡迎關注微信公衆號

微信公衆號名稱:Android乾貨程序員

按照如下步驟:

1:搜索sharesdk註冊帳號,下載sdk
2.2、Android Studio
SMSSDK 2.0.1
SMSSDK2.0.1開始使用aar文件集成。更方便快捷2.1 首先這是一個Android項目

3、配置AndroidManifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然後在“application”下添加如下activity:

<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize"/>

4、添加代碼

啓動SDK

在您的項目啓動時,調用下面的代碼:

SMSSDK.initSDK(this, "您的appkey", "您的appsecret");

2、無GUI接口說明

2.1、初始化接口

限定符和類型 方法和說明
static void initSDK(Context context, String appkey, String appSecrect)
初始化SDK,單例,可以多次調用;任何方法調用前,必須先初始化
static void registerEventHandler(EventHandler handler)
註冊回調接口
static void unregisterEventHandler(EventHandler handler)
註銷回調接口
initSDK方法是短信SDK的入口,需要傳遞您從MOB應用管理後臺中註冊的SMSSDK的應用AppKey和AppSecrete,如果填寫錯誤,後續的操作都將不能進行。
registerEventHandler用來往SMSSDK中註冊一個事件接收器,SMSSDK允許開發者註冊任意數量的接收器,所有接收器都會在事件 被觸發時收到消息。

SMSSDK.initSDK(this,APPKEY,APPSECRET);
        EventHandler eh=new EventHandler(){

            @Override
            public void afterEvent(int event, int result, Object data) {

               if (result == SMSSDK.RESULT_COMPLETE) {
                //回調完成
                if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                //提交驗證碼成功
                }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
                //獲取驗證碼成功
                }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
                //返回支持發送驗證碼的國家列表
                } 
              }else{                                                                 
                 ((Throwable)data).printStackTrace(); 
          }
      } 
   }; 
SMSSDK.registerEventHandler(eh); //註冊短信回調


registerEventHandler必須和unregisterEventHandler配套使用,否則可能造成內存泄漏。
2.2、短信驗證碼接口

限定符和類型 方法和說明
static void getSupportedCountries()
獲取短信目前支持的國家列表,在監聽中返回
static void getVerificationCode(String country, String phone)
getVerificationCode(String country, String phone, OnSendMessageHandler listener)
請求獲取短信驗證碼,在監聽中返回
static void submitVerificationCode(String country, String phone, String code)
提交短信驗證碼,在監聽中返回
其中OnSendMessageHandler的定義如下,這個Handler的用途是在發送短信之前,開發者自己執行一個操作,來根據電話號碼判斷是否需要發送短信

public interface OnSendMessageHandler {

    //#if def{lang} == cn
    /** 
     * 此方法在發送驗證短信前被調用,傳入參數爲接收者號碼
     * 返回true表示此號碼無須實際接收短信
     */
    //#elif def{lang} == en
    /**
     * This method will be called before verification message being to sent,
     * input params are the message receiver
     * return true means this number won't actually receive the message
     */
    //#endif
    public boolean onSendMessage(String country, String phone);}

短信SDK並不能支持世界上所有國家的短信驗證服務,因此我們提供了getSupportedCountries方法,在使用短信驗證碼功能前請調用此方法,獲取當前SDK可以支持的國家列表和號碼匹配規則。
getVerificationCode用於向服務器請求發送驗證碼的服務,需要傳遞國家代號和接收驗證碼的手機號碼,支持此服務的國家代碼在 getSupportedCountries中獲取。請求getVerificationCode的時間間隔不應該小於60秒,否則服務端會返回“操作過 於頻繁”的錯誤
submitVerificationCode用於向服務器提交接收到的短信驗證碼,驗證成功後會通過EventHandler返回國家代碼和電話號碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章