本文為您介紹了號碼認證服務的不同功能下使用SDK的常見問題及解決方法。
一鍵登錄和本機號碼校驗相關FAQ
問題概覽
首次取號時,App網絡通信正常,但號碼認證一直失敗的原因?
檢測SIM卡是否欠費,能否通過移動數據上網。
Android國內某些廠商的系統,Wi-Fi網絡權限與移動數據網絡權限是分開管理的,檢查App是否僅僅只有WLAN網絡權限,而缺失移動數據網絡權限。
checkEnvAvailable函數返回false?
檢查是否插入SIM卡。
檢查是否開啟移動數據。
Android雙卡手機一鍵登錄過程中,使用哪張移動數據卡進行認證?
使用默認移動數據卡進行一鍵登錄認證。
若終端使用的是中國聯通SIM卡的5G移動數據,導致一鍵登錄獲取本機號碼失敗,其解決方法是什么?
您可在networkSecurityConfig清單文件中配置聯通域名enrichgw.10010.com
解決此問題。
初始化接口checkEnvAvailableWithComplete一直返回NO?
您可根據該順序進行排查:
手機SIM卡是否處于已激活、不欠費的狀態。
手機SIM卡的移動數據是否開啟。
App的網絡權限是否開啟。
設備是否有代理。當您開啟VPN,再進行一鍵登錄操作時,中國聯通號碼會出現源IP錯誤、中國電信號碼會出現800008錯誤、中國移動號碼會出現103111錯誤,請關閉VPN之后或者打開飛行模式再關閉之后進行重試。
云控制臺上是否創建了方案號。
創建方案號中的BundleID是否與項目中使用的保持一致。
設備時間設置是否標準,不能修改手機時間戳提前或延期。
是否調用了setAuthSDKInfo接口。
移動卡出現crash【[UAReachability reachableType]: unrecognized selector sent to instance】,該怎樣解決?
在主工程中單擊Project,選擇
,添加-all_load和-ObjC。登錄Token存在失敗嗎?
存在。
偶然出現:由于網絡波動導致網關斷開、網絡不可用、供應商服務端異常、業務方服務端異常等因素。
持續出現:需要運營商協助排查來解決問題。
一鍵登錄服務一般是4G或者4G+Wi-Fi情況下,如果使用3G或2G的網絡會怎么樣?
2G和3G網絡下接口請求失敗或超時概率較高。三大運營商支持的網絡環境,請參見支持哪些網絡環境?。
經常超時怎么辦?
首先確保您的SIM卡沒欠費,其次通過Safari打開某個網址來確認移動網絡是否正常,最后確認超時時間(單位:s)是否設置正確。檢查無誤后超時的原因可能為:
2G和3G網絡下接口請求失敗或超時概率較高。
切換網絡過程中網絡不穩定,出現超時的概率較大。
H5本機號碼校驗類FAQ
為什么使用中國聯通4G網絡,依然獲取不到本機號碼校驗Token?
原因有以下幾種:
使用了物聯網卡。物聯網卡通過裝置在各類物體上的SIM卡、傳感器、二維碼等,經過接口與無線網絡連接,可以實現人與物體、物體與物體間的溝通和對話。
中國聯通不支持接入點為wap的網絡取號。
UC和QQ瀏覽器開啟免流模式可能會導致取號不成功。
SDK公共問題FAQ
問題概覽
若出現權限相關問題,該怎樣做?
檢查App的權限是否可以正常申請。正常引用aar,權限會自動merge。若權限沒有merge,需要添加如下權限。
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission
android:name="android.permission.CHANGE_NETWORK_STATE" />
獲取Token失敗,一般有哪些原因?
手機設置檢測網絡,三大運營商網絡在4G網絡成功率較高。
接口超時時間是否過短,建議3000 ms~5000 ms。
檢測SIM卡是否欠費。
檢查網絡設置,是否可以移動數據網絡上網。
在切換SIM卡過程中,需要等網絡穩定后,再使用認證登錄功能。
返回錯誤碼600005,手機終端不安全有哪些原因?
?機?絡是否連接了代理。
?機是否處于hook狀態,或者安裝了相關的hook框架。
App是否處于attached狀態。
?機是否被root。
是否在模擬器環境中運?。
App是否處于調試狀態,使?getReporter.setLoggerEnable(true)可以關閉此項檢測。
內存泄漏的種類有哪些?為什么會出現內存泄漏?
Toast內存泄漏
協議沒勾選點擊?鍵登錄按鈕顯示Toast,退出授權??出現內存泄漏。解決辦法是
AuthUIConfig.setLogBtnToastHidden(true)
隱藏默認Toast,根據點擊事件的code??顯示Toast即可。???法修改,當授權?號碼欄、?鍵登錄Button、協議欄出現重疊或者遮擋時點擊?鍵登錄按鈕,顯示Toast???法修改,可通過查看圖層解決重疊問題。
TokenResultListener內存泄漏
SDK內部會持有外部設置進來的TokenResultListener,在?鍵登錄功能使?完畢之后通過
PhoneNumberAuthHelper.setAuthListener(null)
將回調置空即可。
setAuthSDKInfo的密鑰如何獲取?
登錄號碼認證產品控制臺,在左側導航欄選擇 ,單擊對應的方案操作列密鑰 ,在出現的彈框上單擊復制密鑰。
此密鑰是號碼認證方案的應用密鑰,不是阿里云賬戶的AccessKey、AccessSecret。
建議將該密鑰在App服務端維護,可以減少因客戶端存在的安全隱患而導致的密鑰泄露風險。
什么情況下會返回600005頁面非法修改?
添加懸浮窗控件遮擋隱私協議、一鍵登錄按鈕以及掩碼,或將字體顏色設置為透明,SDK會回調600005頁面非法修改。
當使用移動卡請求一鍵登錄不成功,可能出現的報錯日志及解決方法有哪些?
報錯日志 | 解決方法 |
ontokenfaild{"code":"600011","msg":"vendorCode:200025, msg獲得的手機授權碼失敗:{\"resultCode\":\"200025\",\"authType\":\"1\",\"authTypeDes\":\"WIFI下網關鑒權\",\"resultDesc\":\"發生未知錯誤\"}","requestCode":0,"vendorName":"CMCC"} | 請檢查依賴v4包com.android.support:support-v4版本是否高于25.4.0或者v7包com.android.support:appcompat-v7版本是否高于25.4.0。 |
ontokenfaild{"code":"600011","msg":"vendorCode:200028, msg獲得的手機授權碼失敗:{\"resultCode\":\"200028\",\"authType\":\"1\",\"authTypeDes\":\"網絡鑒權\",\"resultDesc\":\"網絡異常\"}","requestCode":0,"vendorName":"CMCC"} | 請檢查清單文件application標簽下是否配置了android:usesCleartextTraffic="true"、android:networkSecurityConfig文件。如果設置了networkSecurityConfig文件,請在networkSecurityConfig文件里面配置。
|
SDK使用過程的安全性如何保障?
調用過程是基于運營商及阿里云的電信級運維安全保障。
通過移動數據網絡發起請求,獲取AccessCode。
說明AccessCode的有效次數為一次,使用后立即失效。中國移動、中國聯通、中國電信三大運營商手機號碼的AccessCode有效時長分別為2分鐘、60分鐘、10分鐘。
通過AccessCode和手機號請求認證結果。在此過程中,我們會基于阿里云訪問密鑰對服務端請求進行鑒權。