本产品为 App 实现机主身份验证功能,包含运营商短信验证,本机号一键登录,本机号校验功能。 本机号一键登录是我们的主打推荐产品,为客户提供便捷快速登录操作,短信验证码为一键登录辅助功能。
【说明】: 风控评估能力仅在 V2.3.2 新版本中才可使用。如需使用需开通申请需求。其中风控详细说明见 SDK 中的风控说明文档。
开发环境 | Android Studio 2.1.3 |
---|---|
最低支持 | Android API 19 |
SDK 三方依赖 | com.cmic.sso.sdk 、 com.unicom 、 cn.com.chinatelecom.account |
网络环境 | 蜂窝数据(必须开启)或者蜂窝数据+wifi ,赋予网络权限 |
SDK 当前版本 | V2.3.3 |
---|---|
SDK 当前版本更新内容 | 1.未勾选同意协议时的提示内容以及提示位置 2.未勾选协议时,点击一键登录,新增一个回调 3.修改已知 bug 3.授权页条款添加添加点击事件 4.添加设置条款勾选框状态方法 5.移动SDK升级-不再收集用户IMEI信息等不可变更的设备唯一标识 |
历史版本 | 详见历史版本 |
您需要在APP中集成SDK,并在服务端完成API对接。全流程主要分为四个步骤:
第一步,初始化;
第二步,预取号;
第三步,拉取授权页;
第四步,一键登录授权;
第五步,服务端API置换号码(如下图);
前四步的流程见集成流程图,如下:
android { .... // 配置res-umc 资源目录 sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res-umc'] jni.srcDirs = [] jniLibs.srcDirs = ['src/main/jniLibs'] } } } dependencies { implementation files('libs/sai_sdk_xxx.jar') }
<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"/>
对应权限对应的功能(缺一不可) :
权限名 | 功能 |
---|---|
INTERNET | 网络权限 |
ACCESS_WIFI_STATE | 获取wifi状态 |
ACCESS_NETWORK_STATE | 获取手机网络状态 |
CHANGE_NETWORK_STATE | 网络切换,wifi切换至蜂窝数据 |
开发者根据需要配置横竖屏方向: android:screenOrientation 示列代码为 portrait(竖屏)
注意: v2.3.0版本新增OauthActivity、OauthActivityCtc,需要添加到AndroidManifest配置中。
<!-- 移动、电信、联通授权页面 --> <activity android:name="org.ox.base.OxLoginActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:launchMode="singleTop" android:theme="@style/umcsdk_dialog_style" /> <activity android:name="com.cmic.sso.sdk.activity.LoginAuthActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:launchMode="singleTop" android:theme="@style/umcsdk_dialog_style" /> <activity android:name="cn.com.chinatelecom.account.sdk.ui.AuthActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:launchMode="singleTop" android:theme="@style/umcsdk_dialog_style" /> <activity android:name="com.sdk.mobile.manager.login.cucc.OauthActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:launchMode="singleTop" android:theme="@style/umcsdk_dialog_style" /> <activity android:name="com.sdk.mobile.manager.login.ctc.OauthActivityCtc" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:launchMode="singleTop" android:theme="@style/umcsdk_dialog_style" />
方式一 : 在清单文件里配置以下代码:
android:usesCleartextTraffic="true"
方式二 : 在资源文件新建xml目录,新建文件 network_security_config.xml, 在清单文件中配置
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> <!-- AndroidManifest.xml --> android:networkSecurityConfig="@xml/network_security_config"
# SAI SDK基本功能 -dontwarn org.ox.** -keep class org.ox.** { *; } # 运营商SDK 移动 联通 电信 -dontwarn com.cmic.** -keep class com.cmic.** { *; } -dontwarn com.unicom.** -keep class com.unicom.** { *; } -dontwarn cn.com.chinatelecom.** -keep class cn.com.chinatelecom.** { *; } -dontwarn com.sdk.** -keep class com.sdk.** { *;}
注意:使用微信开源混淆工具的小伙伴,需要在build.gradle文件下额外配置相关的资源过滤规则(白名单),否则会导致UI空白、闪退等问题。
andResGuard { whiteList = [ "R.anim.umcsdk_**", "R.drawable.ct_account_brand_logo", "R.drawable.umcsdk_**", "R.layout.activity_oauth", "R.layout.activity_oauth_ctc", "R.layout.umcsdk_login_auth", "R.layout.umcsdk_login_auth_dialog", "R.layout.umcsdk_login_btn", "R.id.**", "R.string.**", "R.color.**", "R.style.**" ] }
参见:
build.gradle
a. 初始化SDK
b. 调用预取号(可省略-建议使用)
c. 调用一键登录(内部包含判断是否取号)-拉起授权页
d. 判断登录结果
e. 关闭授权页面
方法描述
初始化SDK, 注意:请勿多次调用 ,V2.3.2版本可使用Application 进行初始化;建议使用Activity进行初始化
/** * SDK初始化 请勿多次调用 * * @param context 上下文 * @param param 参数 json 数据格式 * @param pNotifier 回调对象 * @return 大于等于0执行,结果回调。 以下几种请情况直接返回,不回调 * 1:SDK已经初始化完成,无需多次初始化返回1,不回调; * -45040:参数有误,缺失; * -45041:SDK正在初始化中; */ public static int init(Context context, OxRequestParam param, OxNotifier pNotifier) { ...... }
代码示例
OxClientEntry.setDebugMode(true); // 开启debug 日志打印 // https.http请求write/readTimeout,设置不小于3s; // 调起SDK后整个执行过程的超时时间是timeout的2倍。 /** * TODO 默认5000 ms.单个请求也可在oxRequestParam 中设置'OxRequestParam.setTimeout(int)' */ OxClientEntry.setDefaultTimeout(4000); JSONObject initParam = new JSONObject(); initParam.put("app_id", APP_ID); initParam.put("app_secret", APP_SECRET); OxRequestParam pInitParam = new OxRequestParam(); pInitParam.setActionType(OxActionType.INIT_SDK); pInitParam.setStrData(initParam.toString()); pInitParam.setExtra(extraData); return OxClientEntry.init(pInitContext, pInitParam, new MyNotifier());
参数说明
参数名称 | 参数类型 | 必填 | 描述 | |
---|---|---|---|---|
actionType | String | -- | 响应类型: OxActionType.INIT_SDK |
|
strData | app_id | String | 是 | 官网注册获取的appId |
app_secret | String | 是 | 官网注册获取的appSecret | |
options | String | 否 | 可选参数,JSON 格式 | |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 必填 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType.INIT_SDK | |
strData | code | String | 是 | 响应码 :“00000”成功 |
risk_code | String | 否 | 风 风险码(可能存在多个),通过账户进行配置才有返回 (V2.3.2新增) | |
risk_level | String | 否 | 风险等级 (V2.3.2新增) | |
msg | String | 否 | 响应信息 | |
param | OxRequestParam | 否 | 请求时的对象 |
返回strData实体示例 :
{ "code":"00000", "risk_code":"2013", "risk_level":"3" }
方法描述
使用预取号后,可快速拉起授权页,需要开发者在 SDK 初始化完成 后 中的预取号操作 , 如果不做 预取号操作 ,直接调用获取 登录 accessToken,会影响每次拉起授权页 的 等待时间。
OxClientEntry.requestAction(OxRequestParam);
代码示例
OxRequestParam param = new OxRequestParam(); param.setActionType(OxActionType.PRE_LOGIN); int iResult = OxClientEntry.requestAction(param);
参数说明
参数名称 | 参数类型 | 必填 | 描述 |
---|---|---|---|
actionType | String | 是 | 请求类型: OxActionType.PRE_LOGIN |
strData | String | -- | 格式JSON |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 必填 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 请求类型: OxActionType.PRE_LOGIN | |
strData | msg | String | 是 | 响应消息 |
code | String | 是 | 响应码 :“00000”成功 | |
param | OxRequestParam | 是 | 请求对象数据 |
返回strData实体示例 :
{ "code":"00000", "msg":"success" }
方法描述
即一键登录的主体功能
public static int requestAction(OxRequestParam param) { ...... }
代码示例
OxRequestParam param = new OxRequestParam(); param.setActionType(OxActionType.GET_ONEKEY_LOGIN_TOKEN); int iResult = OxClientEntry.requestAction(param);
参数说明
参数名称 | 参数类型 | 必填 | 描述 |
---|---|---|---|
actionType | String | 是 | 请求类型: OxActionType. GET_ONEKEY_LOGIN_TOKEN |
strData | String | -- | 格式JSON |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 必填 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 请求类型:OxActionType.GET_ONEKEY_LOGIN_TOKEN | |
strData | code | string | 是 | 响应码 :“00000”成功 |
msg | string | 否 | 响应信息 | |
access_token | string | 是 | 成功是返回access_token,用于从平台服务器获取手机号信息。获取用户信息API请查看服务端API文档。有效期为2分钟, | |
risk_code | string | 否 | 风 风险码(可能存在多个),通过账户进行配置才有返回 (V2.3.2新增) | |
risk_level | string | 否 | 风险等级 (V2.3.2新增) | |
param | OxRequestParam | 是 | 请求对象数据 |
返回strData实体示例 :
{ "access_token":"xx", "code":"00000", "risk_code":"2013", "risk_level":"3" }
方法描述
用户完成登录后需手动调用结束授权页的方法
/** * 主动调用,授权页完成token获取不关闭,需要主动调用此方法结束授权页 */ public static void finishAuthActivity() { ...... }
代码示例
OxClientEntry.finishAuthActivity();
v2.3.2 版本新增风控检测等功能,在SDK初始化、本机号校验等公共中会对设备的环境信息进行检测。
参数名称 | 参数类型 | 非空 | 描述 |
---|---|---|---|
risk_code | string | false | 风险码(可能存在多个),通过账户进行配置才有返回。 |
risk_level | string | false | 风险等级 |
等级 | 说明 |
---|---|
0 | 正常用户 |
3 | 风险较低 |
7 | 风险较高 |
9 | 高风险,确定是风险客户 |
风险码 | 风险等级 | 风险说明 |
---|---|---|
2011 | 7 | 模拟器操作 |
2012 | 3 | 获取到设备最高权限,越狱或者root |
2013 | 3 | 终端设备上安装有多开工具或者类似多开类应用 |
2014 | 7 | 终端设备处于调试状态 |
2015 | 7 | 安卓端对设备有改机操作或者安装了改机软件 |
返回strData实体示例 :
{ ...... "risk_code":"2013", "risk_level":"3", ...... }
见下图:
注意:红色部分
授权页拉起成功后的授权页回调(Callbacks),类名为OxAuthLoginActivityCallbacks。LoginActivity相关生命周期代理对象到 OxAuthLoginActivityCallbacks抽象类中,开发这可在相关生命周期回调方法中处理授权页面的一些事件。例如,在onLayoutComplete(Activity, View)中绑定自己的视图,在onActivityDestroyed(Activity)方法中处理授权页面关闭后续操作。下面还会简单介绍相关回调方法的用法。
package org.ox.face;
import android.app.Activity;
import android.view.View;
public abstract class OxAuthLoginActivityCallbacks{
/** 授权页UI布局加载完成回调,用户可在此方法中绑定子控件,设置点击事件 */ public abstract void onLayoutCompleted(Activity activity, View view); /** UI布局加载时的抛出异常信息。注意查看错误日志。*/ public abstract void onLayoutError(String msg, Exception e); /** 授权页activity created回调*/ public void onActivityCreated(Activity activity) { } /** 授权页activity started回调 */ public void onActivityStarted(Activity activity) { } /** activity Resume*/ public void onActivityResumed(Activity activity) { } /** activity Pause*/ public void onActivityPaused(Activity activity) { } /** 授权页暂停时调用*/ public void onActivityStopped(Activity activity) { } /** 授权页面结束后的回调方法*/ public void onActivityDestroyed(Activity activity) { } /** 登录按钮点击事件回调*/ public void onClickLoginListener() { } /** * 执行开始动画效果 * * @param context 当前活动页面activity上下文 * @return 当设置使用自己的loading动画时return true,默认 false 使用SDK的 loading */ public boolean onStartLoginLoading(Activity context) { return false; } /** * 结束动画效果 * * @return 当设置使用自己的loading动画时return true */
public boolean onStopLoginLoading() {
return false; }
public boolean oxActionUsersInteract(int type, int value, String url) {
return false;
}
}
调用该方法可实现对三网运营商授权页面个性化设计
/** * 设置一键登录授权页面UI 风格配置 * * @param config Config */ public static void setLoginThemeConfig(OxLoginThemeConfig config) { ...... }
参数说明
OxLoginThemeConfig | 一键登录授权页面UI 风格配置类 | 开发者通过配置OxLoginThemeConfig的属性改变UI |
---|
代码示例
// 自定义授权页页面UI OxClientEntry.setLoginThemeConfig(mLoginThemeConfig);
OxLoginThemeConfig 配置元素说明
方法 | 参数类型 | 说明 |
---|---|---|
进出场动画 | ||
setStartActivityTransition | anim | 设置拉起授权页的进、出场动画 |
setFinishActivityTransition | anim | 设置结束授权页的进、出场动画 |
导航栏属性设置 | ||
setNavText | String | 设置导航栏标题文字内容,默认 "登录",设置为 null是跟随xml布局中title text内容变化; |
setNavColor | int-ColorInt | 设置导航栏背景颜色。 navColor=-1 是,颜色跟随布局变化 ,默认值 :-1 |
setNavTextColor | int-ColorInt | 设置导航栏标题文字颜色。navTextColor=-1 是,颜色跟随布局变化 ,默认值 :-1 |
setNavReturnImgResId | int-DrawableRes | 设置导航栏返回按钮背景图片资源id。imgResId=-1 是,背景图片跟随布局变化 ,默认值 :-1 |
Logo图片设置 | ||
setLogoImgResId | int-DrawableRes | 设置导航栏返回按钮背景图片资源id。默认值:-1 |
setLogoFrames | int,int | 设置logo 宽高 |
setLogoHidden | boolean | 设置logo显示与隐藏,默认false显示 |
电话号码文字属性设置 | ||
setNumberColor | int-ColorInt | 设置电话号码文字颜色。默认值 :-1 |
setNumberSize | float | 号码文本字体大小 |
Slogan文本属性设置 | ||
setSloganTextColor | int-ColorInt | 设置Slogan文字颜色。默认值-1 |
setSloganTextSize | float | 设置slogan文本字体大小 |
登录按钮属性设置 | ||
setLoginBtnText | String | 设置登录按钮文字。默认值 :"本机号码一键登录" |
setLoginBtnTextColor | int-ColorInt | 设置登录按钮文字颜色。默认值 :-1 |
setLoginBtnTextSize | float | 登录按钮字体大小 |
setLoginBtnBackgroundResId | int- DrawableRes | 设置登录按钮背景图片资源id。默认值 :-1 |
条款协议设置 | ||
setClauseColor | int(基本文字颜色) ,int(条款名称文字颜色) | 文字颜色设置 |
clause | String(名称),String(链接) | 创建一个新的协议条款对象 |
setClauseTextFormat | String ,Clause列表 | clauseTextFormat Format(html/String) 默认:同意?,请仔细阅读 |
setOperatorTermsPunctuationMarks | boolean | 设置运营商协议是否有书名号,默认有 |
setPrivacyTextSize | float | 设置协议文本字体大小 |
setCheckBoxButtonResId | int- DrawableRes | 条款勾选框修改,不设置时跟随布局图片 |
setPrivacyState | boolean | 默认不勾选:false;需要勾选请设置为true |
setPrivacyCheckBoxHidden | boolean | 设置协议勾选框显隐 |
条款协议预览页风格设置 | ||
setClausePageBackImgResId | int- DrawableRes | 设置条款页面返回按钮图片资源id |
setClausePageBackImgParams | int,int | 设置条款页面返回按钮图片宽高 |
setClausePageBackImgAlignParentLeft | boolean | 按钮在左边还是右边 默认左边,false时,右边显示 |
setClausePageNavTextColor | int-ColorInt | 条款网页页面导航栏文字颜色 |
setClausePageNavColor | int-ColorInt | 条款网页页面导航栏背景颜色 |
状态栏背景颜色设置 | ||
setStatusBarColor | int( 状态栏背景颜色 ),boolean( true:字体为黑 false:字体为白 ) | 设置状态栏背景颜色 |
授权页背景修改 | ||
setAuthBackgroundResId | int- DrawableRes | 可设置颜色 |
setAuthBgLandResId | int- DrawableRes | 设置横屏时的背景 |
setDialogWindowBgResId | int- DrawableRes | 设置弹窗模式背景区域背景 |
未勾选复选框提示信息,位置控制参数 | ||
CbToastMessage | String | 提示内容 |
CbToastGravity | BOTTOM、TOP、CENTER | 未勾选协议时的提示信息的位置 |
CbToastOffsetX | int | 正值往左 此值必须与CbToastGravity同时使用时才生效 |
CbToastOffsetY | int | 正值往上 此值必须与CbToastGravity同时使用时才生效 |
CbToastDuration | int | 未勾选协议时的提示时长 |
方法描述
在调用一键登录前,可通过此方法配置授权页面的模式,弹窗获取Activity模式
public void setAuthWindowModel(int authWindowModel);
参数说明
OxLoginThemeConfig.WINDOW_MODEL_DIALOG | 弹窗模式 |
---|---|
OxLoginThemeConfig.WINDOW_MODEL_ACTIVITY | 全屏模式(默认模式) |
方法描述
可设置弹窗的布局以及style达到自定义的目的
/** * 从布局资源设置Activity内容。 布局文件中的id要与原默认id相同, * * @param layoutResId Resource ID to be inflated. */ public void setLoginDialogLayoutResId(@LayoutRes int layoutResId);
注意: 在设置窗口为dialog模式时需要添加activity风格样式,SDK已经提供了这个样式values/umcsdk_styles.xml中umcsdk_dialog_style.
<style name="umcsdk_dialog_style" parent="Theme.AppCompat.Light.NoActionBar"> <!--没有标题--> <item name="windowNoTitle">true</item> <!--背景透明--> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowFrame">@null</item> <!--dialog的整个屏幕的背景黑色半透明遮障层 false 没有遮障层 true 有半透明黑色遮障层--> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowAnimationStyle"> @android:style/Animation.Dialog </item> </style>
方法描述
SDK针对横竖屏做了自动适配,当旋转屏幕后,会重新加载布局,同时回调 onLayoutComplete(Activity activity, View view)
方法。
此外还可固定页面为横屏或者竖屏,方法有两种:
是在AndroidManifest.xml中对应activity添加
screenOrientation
属性portrait
竖屏,landscape
横屏;
在OxAuthLoginActivityCallbacks 中的public void onActivityCreated(Activity activity)使用代码设置横竖屏,方法如下.
@Override public void onActivityCreated(Activity activity) { // 横屏 //activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 竖屏 //activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // 跟随系统 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
8.0的坑
android
8.0的一个坑Only fullscreen activities can request orientation
异常。当Activity清单的style中添加了下面一行代码:
<item name="android:windowIsTranslucent">true</item>
这个段代码会导致8.0手机Activity再使用activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
方法或者xml中添加android:screenOrientation="portrait"
属性启动时奔溃。
解决:
1. 如果你需要使用弹窗模式风格,请删除`android:screenOrientation="portrait"`属性,限制打开窗口所在页面横竖屏就行了,如在A界面打开授权窗口(横屏),使用横屏` A.instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) ;`,如果你需要在结束授权窗口恢复竖屏请在A中的 ` onResume() `方法中 实现如下代码:
@Override protected void onResume() { super.onResume(); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }
2. 如果只使用全面模式,那么请删除`android:theme="@style/umcsdk_dialog_style"`,这样就可以使用`android:screenOrientation="portrait"`和在`onLayoutComplete(Activity activity, View view)`方法中使用:
@Override public void onActivityCreated(Activity activity) { // 横屏 //activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 竖屏 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }
方法描述
自定义Loading
/** * 执行开始动画效果 * @param context 当前活动页面activity上下文 * @return 当设置使用自己的loading动画时return true,默认 false 使用SDK的loading */ public boolean onStartLoginLoading(Activity context) { //TODO 在这里showLoading 对象; return false; } /** * 结束动画效果 * @return 当设置使用自己的loading动画时return true */ public boolean onStopLoginLoading() { //TODO 在这里dismissLoading 对象; return false; } @Override public void onActivityCreated(Activity activity) { //TODO 在这里创建自己的loading对象; }
开发者可以在应用内部任意页面调用本方法,获取本机号码校验接口的凭证(token)
注意:获取 token 接口不要连续频繁调用,需等待上一次调用完成回调后再发起新的调用!须在SDK初始化之后调用
* 获取本机号token
方法描述
获取本机号token
OxClientEntry.requestAction(OxRequestParam requestParam );
参数说明
参数名称 | 参数类型 | 非空 | 描述 |
---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType.GET_MOBILE_AUTH_TOKEN |
strData | -- | -- | -- |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 非空 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType.GET_MOBILE_AUTH_TOKEN | |
strData | code | String | 是 | 响应码 :“00000”成功 |
access_token | String | 是 | 成功是返回access_token,用于从SAI服务端本机号校验。 服务端本机号校验API请查看服务端API文档 |
|
msg | String | 否 | 响应信息 | |
risk_code | String | 否 | 风 风险码(可能存在多个),通过账户进行配置才有返回 (V2.3.2新增) | |
risk_level | String | 否 | 风险等级 (V2.3.2新增) | |
param | OxRequestParam | 是 | 请求时的对象 |
返回strData实体示例 :
{ "access_token":"xx", "code":"00000", "risk_code":"2013", "risk_level":"3" }
注意:须在SDK初始化之后调用
短信验证由客户端发起,收到短信验证码后校验短信验证码是否正确。请求发送短信验证,调用此方法,会向传入的手机号对应的手机发送一条短信(调用此接口会消耗验证次数或余额,优先消耗验证次数),短信验证码一分钟内只能发送一次,一分钟内多次调用会导致失败。
* 请求短信验证码
方法描述
发送短信验证码
OxClientEntry.requestAction(OxRequestParam requestParam );
参数说明
参数名称 | 参数类型 | 非空 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType.VERIFY_BY_SMS_START | |
strData | tel | String | 是 | 请求的手机号 |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 非空 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType.VERIFY_BY_SMS_START | |
strData | code | String | 是 | 响应码 :“00000”成功 |
verify_order_id | String | 是 | 平台订单id | |
msg | String | 否 | 响应信息 | |
param | OxRequestParam | 是 | 请求时的对象 |
返回strData实体示例 :
{ "code":"00000", "verify_order_id":"sms_159xx71b93", "request_id":"1595839036768" }
* 校验短信验证码
方法描述
校验短信验证码
OxClientEntry.requestAction(OxRequestParam requestParam );
参数说明
参数名称 | 参数类型 | 非空 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType. VERIFY_BY_SMS_CHECK | |
strData | tel | String | 是 | 请求的手机号 |
extra | Object | 否 | 自定义参数,不参与请求。 |
响应信息
参数名称 | 参数类型 | 非空 | 描述 | |
---|---|---|---|---|
actionType | String | 是 | 响应类型: OxActionType. VERIFY_BY_SMS_CHECK | |
strData | code | String | 是 | 响应码 :“00000”成功 |
verify_token | String | 是 | 用于二次验证token | |
msg | String | 否 | 响应信息 | |
param | OxRequestParam | 是 | 请求时的对象 |
返回strData实体示例 :
{ "code":"00000", "verify_token":"xxx", "request_id":"1595839217584" }
方法描述:
获取SDK版本号
OxClientEntry.SDK_VERSION
代码示例:
String sdkVersion = OxClientEntry.SDK_VERSION;
方法描述:
设置调试模式
/** * 设置调试模式。 * (注:该接口需在init接口之前调用,避免出现部分日志没打印的情况。开发时建议设置为true) * * @param isDebug 是否为debug模式 */ public static void setDebugMode(boolean isDebug) { ...... }
代码示例:
OxClientEntry.setDebugMode(true);
方法描述:
请求超时时间
/** * 设置默认的请求超时时间,当单个请求没有设置超时时使用这个超时时间。 * * @param timeout ms ,默认3000 ms */ public static void setDefaultTimeout(int timeout) { ...... }
代码示例:
OxClientEntry.setDefaultTimeout(5000);
注意:须在SDK初始化之后调用
方法描述:
获取网络类型
/** * 需要权限:READ_PHONE_STATE, ACCESS_NETWORK_STATE * operatorType 获取网络运营商 1.移动流量 2.电信流量网络 3.联通流量网络 * networkType 网络状态:0未知;1流量 2 wifi;3 数据流量+wifi */ public static String getNetworkType() { ...... }
代码示例:
String netType = OxClientEntry.getNetworkType();
注意:须在SDK初始化之后调用
方法描述:
获取设备风控信息
/** * 获取设备环境信息-风控检测 * debugging // 是否处于调试状态 * multiple_app_on // 是否安装多开软件 * root // 是否root * simulator // 是否是模拟器 * change_machine_software // 是否有改机操作 * * @return JSONObject */ public static JSONObject getLocalDevEnv() { ...... }
代码示例:
JSONObject devInfo = OxClientEntry.getLocalDevEnv();
方法描述:
注销SDK
/** * 注销SDK的方法 */ public static void deinit() { ...... }
代码示例:
OxClientEntry.deinit();
下表提供本产品所有的API功能表格,便于查询
public static int init(Context context, OxRequestParam param, OxNotifier pNotifier) | 初始化SDK | OxNotifier 是所有请求的回调入口 |
---|---|---|
public static void deinit() | 注销SDK | |
public static JSONObject getLocalDevEnv() | 获取设备风控信息 | v2.3.2新增 |
public static String getNetworkType() | 获取网络类型 | |
public static void setDefaultTimeout(int timeout) | 设置请求超时时间 | |
public static void setDebugMode(boolean isDebug) | 设置调试模式 | |
OxClientEntry.SDK_VERSION | 获取SDK版本号 | |
public static int requestAction(OxRequestParam param) | 所有的请求入口 | 见下表 |
public static void setLoginThemeConfig(OxLoginThemeConfig config) | 设置一键登录UI | |
public static OxLoginThemeConfig getLoginThemeConfig() | 获取一键登录页面配置对象 | |
public static void setAuthLoginActivityCallback(OxAuthLoginActivityCallbacks activityCallback) | 设置授权页代理回调对象 |
|
public static void finishAuthActivity() | 结束授权页 | |
public static void setCheckBoxStatus(boolean status) | 设置协议框勾选状态(2.3.3新增) |
本产品的事件类型:
public static final String INIT_SDK | SDK初始化 |
---|---|
public static final String VERIFY_BY_SMS_START | 短信验证获取验证码 |
public static final String VERIFY_BY_SMS_CHECK | 短信校验 |
public static final String PRE_LOGIN | 一键登录获取token/预登录 |
public static final String GET_ONEKEY_LOGIN_TOKEN | 一键登录获取token |
public static final String GET_MOBILE_AUTH_TOKEN | 本机号检验获取token |