android 验证 号码,本机号码校验
本機號碼校驗
接入前準備
請聯系技術支持:文檔中心右側“技術咨詢” 開通權限。
配置SDK
如果您已經接入了一鍵登錄功能,那么可以跳過以下配置SDK步驟。
在接入本機號碼校驗之前,請先確認已經集成個驗SDK。下文使用到的資源文件,均可在官網下載的SDK資源包中獲得。調用一鍵認證接口前請先完成個驗SDK的接入與初始化。
maven接入方式
dependencies {
compile 'com.getui:gysdk:1.6.0.0'
compile 'com.getui:gtc:2.1.0'
//一鍵登錄擴展包
compile 'com.getui:elogin:1.1.0.0'
}
aar 包接入方式
(1)添加 aar包文件
將官網下載下來的 aar包 放置到項目的libs目錄下
(2)配置 build.gradle
defaultConfig {
....
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
// 添加個驗 aar 依賴,name與aar包的名字同步
compile(name: 'gysdk-1.6.0.0', ext: 'aar')
compile(name: 'gtc-2.1.0', ext: 'aar')
//添加一鍵登錄擴展包
compile(name: 'elogin-1.1.0.0', ext: 'aar')
}
混淆配置
-dontwarn com.g.gysdk.**-keep class com.g.gysdk.**{*;}-dontwarn com.g.elogin.**-keep class com.g.elogin.**{*;}-dontwarn com.cmic.sso.sdk.**-keep class com.cmic.sso.sdk.** {*;}-dontwarn com.geetest.onelogin.**-keep class com.geetest.onelogin.** {*;}-dontwarn com.geetest.onepassv2.**-keep class com.geetest.onepassv2.** {*;}-dontwarn com.unicom.xiaowo.login.**-keep class com.unicom.xiaowo.login.** {*;}-dontwarn cn.com.chinatelecom.**-keep class cn.com.chinatelecom.** {*;}
接口列表
API 類名: com.g.gysdk.GYManager
方法
功能說明
getVerifyToken
【本機號碼校驗】獲取本機號碼校驗通行證
verifyPhoneNumber
【本機號碼校驗】手機號碼校驗
cancelGetVerifyToken
【本機號碼校驗】關閉獲取本機號碼校驗通行證
本機號碼校驗
整體流程
本機號碼校驗需要先獲取通行證,然后再進行本機號碼校驗。
獲取本機號碼校驗通行證
/**
* 獲取本機號碼校驗通行證.
*
* @param phone 待校驗手機號碼.
* @param timeout 超時時間.
* @param gyCallBack 回調.
*/
public void getVerifyToken(String phone, int timeout, GyCallBack gyCallBack);
輸入參數
參數名稱
是否必填
類型
描述
phone
是
String
待校驗手機號碼
timeout
是
int
超時時間(建議8000ms-15000ms)
gyCallBack
否
GyCallBack
回調
調用示例
GYManager.getInstance().getVerifyToken(phone, 5000, new GyCallBack() {
@Override
public void onSuccess(final GYResponse response) {
try {
JSONObject jsonObject = new JSONObject(response.getMsg());
String accessCode = jsonObject.getString("accessCode");
String processId = jsonObject.getString("process_id");
int operatorType = jsonObject.getInt("operatorType");
String phone = jsonObject.getString("phone");
} catch (Throwable t) {
t.printStackTrace();
}
}
@Override
public void onFailed(GYResponse response) {
Log.d("onFailed", "response:" + response);
showToast(response.toString());
}
});
返回示例
通過GyCallBack返回結果.
GyCallBack:
public interface GyCallBack {
/**
* description:獲取成功.
*/
void onSuccess(GYResponse response);
/**
* description:獲取失敗.
*/
void onFailed(GYResponse response);
}
GYResponse返回示例:
//獲取成功
{
gyuid='cd529bfde4c641d0bc42257e2ed7300131',
success=true,
code=30000,
msg='{"process_id":"c9c27556b973d4b9c1f952795f02a2ef","accessCode":"nm360b88d6e1a64ac4b4d7e70776a35b2e","phone":"17768345313","operatorType":4}'
}
//獲取失敗
{
gyuid='8f41f31b0e7a43e6bbb4d1e6da77489b62',
success=false,
code=30007,
msg='{"msg":1,"process_id":"9dfbfce85f8214af57be674d2b1069b8","operatorType":"CU","clienttype":"1","errorCode":"-20205","metadata":{"resultCode":1,"resultMsg":"請求sdk超時","resultData":"","traceId":""}}'
}類 GYResponse 屬性詳細說明:
屬性
類型
屬性說明
gyuid
String
個驗用戶唯一標識
success
boolean
是否獲取成功
code
int
狀態碼,30000表示獲取成功
msg
String
獲取成功的時候,包含accessCode信息,驗證失敗的時候,為失敗詳細信息
GYResponse中msg詳細信息解釋:
預登錄成功時msg:
字段
必須
類型
解釋
process_id
是
String
流水號
accessCode
是
String
運營商返回的accessCode
phone
是
String
發往運營商的手機號
operatorType
是
int
運營商驗證類型,下一步校驗手機號需要用到該參數
預登錄失敗時msg:
當code為30007時,msg是具體的錯誤信息JSON字符串。其他情況為code的簡單說明,例如網絡異常。以下是code為30007時msg的詳細說明:
字段
必須
類型
解釋
errorCode
是
String
錯誤碼
msg
否
String
運營商返回的狀態信息
process_id
否
String
流水號
metadata
是
JSONObject
具體的錯誤原因
operatorType
否
String
客戶端獲取的運營商
clienttype
是
String
客戶端,1表示Android
本機號碼校驗接口
/**
*驗證本機號碼.
** @param accessCode 本機號碼校驗通行證.
*@param processId processId.
*@param phone 待校驗號碼.
*@param operatorType 運營商驗證類型.
*@param gyCallBack 回調.
*/
public void verifyPhoneNumber(String accessCode, String processId, String phone, int operatorType, GyCallBack gyCallBack);
我們還提供了服務端的本機號碼校驗接口,如果開發者有這方面的需求,請參考服務端的文檔。
輸入參數
參數名稱
是否必填
類型
描述
accessCode
是
String
本機號碼校驗通行證
processId
是
String
流水號
phone
是
String
待驗證號碼
operatorType
是
int
運營商驗證類型,由獲取本機號碼校驗通行證接口返回
gyCallBack
否
GyCallBack
回調
調用示例
GYManager.getInstance().verifyPhoneNumber(accessCode, processId, phone, operatorType, new GyCallBack() {
@Override
public void onSuccess(GYResponse response) {
showToast("校驗成功");
}
@Override
public void onFailed(GYResponse response) {
showToast("校驗失敗:" + response.getMsg());
}
});
返回示例
通過GyCallBack返回結果.
GyCallBack:
public interface GyCallBack {
/**
* description:驗證成功.
*/
void onSuccess(GYResponse response);
/**
* description:驗證失敗.
*/
void onFailed(GYResponse response);
}
GYResponse返回示例:
{
gyuid='cd529bfde4c641d0bc42257e2ed7300131',
success=true,
code=30000,
msg='成功'
}類 GYResponse 屬性詳細說明:
屬性
類型
屬性說明
gyuid
String
個驗用戶唯一標識
success
boolean
是否獲取成功
code
int
狀態碼,30000表示驗證成功
msg
String
返回碼說明
關閉獲取本機號碼校驗通行證
/**
* 關閉獲取本機號碼校驗通行證.
*/
public void cancelGetVerifyToken();
狀態碼
SDK返回碼
狀態碼
含義
30000
操作成功
30001
當前網絡環境不適合執行該操作
30004
其他錯誤
30005
預登錄失敗
30006
一鍵登錄失敗
30007
獲取本機號碼校驗token失敗
40047
一鍵登錄取號失敗
40053
手機號校驗失敗
錯誤碼
errorCode
Description
-20100
手機號未傳
-20101
app_id未傳
-20104
沒有預取號就進行取號
-20200
當前網絡不可用
-20201
當前手機沒有電話卡
-20202
當前沒有開啟流量
-20203
未獲取到運營商
-20204
獲取運營商錯誤
-20205
預取號超時
-20206
沒有預取號成功就進行取號
-20207
WIFI下請求切換網絡失敗
-20301
退出取號頁面
-20302
按返回鍵退出取號頁面
-20303
切換賬號登陸方式
-20304
授權頁面加載異常
-30200
SDK內部請求PreGateWay接口超時
-40101
移動運營商預取號失敗
-40102
移動運營商取號失敗
-40104
移動不支持的網絡制式
-40201
聯通運營商預取號失敗
-40202
聯通運營商取號失敗
-40204
聯通不支持的網絡制式(不支持2G)
-40301
電信運營商預取號失敗
-40302
電信運營商取號失敗
-40305
電信不支持的網絡制式(不支持2G, 3G)
-50100
服務接口返回異常
-50101
服務接口解密失敗
-50102
服務接口返回錯誤
其余情況請參考狀態碼匯總說明
常見問題
建議開發者在開發期間開啟debug模式,通過查看debug日志,可以更好的排查問題。
//在初始化之前調用
GYManager.getInstance().setDebug(true);
一鍵登錄和本機號碼校驗支持哪些運營商和網絡環境
目前支持移動 2G、3G、4G、5G,聯通 3G、4G、5G,電信 4G、5G
是否支持雙卡手機
支持,雙卡手機以開啟數據流量的 SIM 卡進行認證。
WIFI環境下能否驗證
在數據網絡開通的前提下,WiFi 環境中會強制使用數據網絡觸發網關請求,請求僅為幾K,可正常校驗。
是否支持攜號轉網用戶
SDK 不提供接口判斷用戶是否為攜號轉網用戶,但可以判斷用戶流量卡當前的運營商。即攜號轉網用戶可正常使用。
是否支持虛擬運營商
僅支持三大運營商(移動、聯通、電信)的手機號進行一鍵登錄。
是否支持流量卡
三大運營商(移動、聯通、電信)的卡,能夠正常使用數據網絡,運營商通過網關能夠正常取號,均會被作為正常的卡來判斷。
是否支持分屏顯示
目前一鍵認證不支持分屏幕顯示。
部分OPPO手機上預登錄失敗
部分OPPO手機上新安裝APP默認只有wifi網絡權限,默認沒有給予訪問移動數據流量的權限。需要用戶在設置中手動授予權限。開發者可以引導用戶開啟,有以下兩種方案:
引導手動設置權限:設置->雙卡與移動網絡->使用WLAN與移動網絡的應用->找到需要設置的APP->設置WLAN與移動數據即可
關閉WIFI,操作應用,會彈出使用移動網絡提醒,點擊設為允許,即可正常使用
總結
以上是生活随笔為你收集整理的android 验证 号码,本机号码校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB-C正反插带PD快充USB3.0输
- 下一篇: 电力物联网全场景安全态势感知解决方案