魔蝎 SDK 集成流程 (Android Studio 版本 ) 开始集成 1. 导 入 SDK 将 SDK 目录下的 文件 moxie-client-x.y.z.aar 包放到您 工程的 libs 文件夹下 在 build.gradle 里里添加如下依赖 dependencies {... // 按照 sdk 目录下的具体版本修改 compile(name:'moxie-client-x.y.z', ext:'aar') 或使 用gradle 直接引 入, 当前版本 Download 2.3.5 dependencies { // gradle >= 3.0 implementation 'com.moxie:moxie-client:x.y.z' // gradle < 3.0 compile 'com.moxie:moxie-client:x.y.z' 2. 配置 build.gradle 2.1 添加依赖 在 build.gradle 里里添加如下依赖 dependencies {... // 按照 sdk 目录下的具体版本修改 compile(name:'moxie-client-x.x.x', ext:'aar') 2.2 增加 ndk 配置 // 支持以下版本架构, 按需添加 defaultconfig { ndk { abifilters "x86_64", "arm64-v8a", "armeabi-v7a", "x86" 2.3 使 jni 目录指向 工程的 libs 目录 sourcesets { main{ jnilibs.srcdirs = ['libs'] 2.4 添加 repositories repositories { flatdir { dirs 'libs' 3. 添加混淆代码 具体请参照 app 目录下的 proguard-rules.pro 文件 4. 配置 工程
第 一步 : 打开 AndroidManifest.xml 添加 Activity 和 Service 声明 : <activity android:name="com.moxie.client.mainactivity" android:windowsoftinputmode="adjustresize statealwayshidden" android:theme="@android:style/theme.translucent.notitlebar"> <activity android:name="com.moxie.client.accessible.accessiblecrawleractivity" android:theme="@style/theme.appcompat.light.noactionbar" android:screenorientation="portrait" android:launchmode="singletask"/> <service android:name="com.moxie.client.accessible.accessiblecrawlerservice" android:enabled="true" android:exported="true" android:label="@string/accessibility_name" android:accessibilityflags="flagreportviewids" android:permission="android.permission.bind_accessibility_service"> <intent-filter> <action android:name="android.accessibilityservice.accessibilityservice" /> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessible_crawler_config" /> </service> 注意 : 辅助模式标题可通过 @string/accessibility_name 替换 ; 辅助模式描述可通过 @string/accessibility_description 替换 ; 第 二步 : 添加权限 : <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.read_phone_state"/> <uses-permission android:name="android.permission.access_wifi_state"/> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.read_external_storage"/> <uses-permission android:name="android.permission.write_external_storage"/> 5. 打开 SDK 并接收回调 第 一步 : 在 Application.oncreate() 里里 面调 用 MoxieSDK.init(this); 完成初始化 第 二步 : 通过 生成 MxParam 对象来完成各种参数的设置, 使 用 MoxieSDK.getInstance().start() 方式开启, 示例例如下 : 具体的使 用 方法请参照 DEMO 里里的 BigDataFragment.java
// 合作 方系统中的客户 ID String muserid = " 由 用户 自 己定 "; // 合作 方系统中的客户 ID // 获取任务状态时使 用 ( 合作 方申请接 入后由魔蝎数据提供 ) String mapikey = "6149056c09e1498ca9b1bcd534b5ad0c"; String mthemecolor= "#ff9500"; //SDK 里里 页 面主 色调 MxParam mxparam = new MxParam(); mxparam.setuserid(muserid); mxparam.setapikey(mapikey); mxparam.settasktype(mxparam.param_task_mail); // 必传 // 必传 // 必传 mxparam.setphone("13500000000"); mxparam.setname(" 张 小明 "); mxparam.setidcard("330000000000000000"); MoxieSDK.getInstance().start(getActivity(), mxparam, new MoxieCallBack() { public boolean callback(moxiecontext moxiecontext, MoxieCallBackData moxiecallbackdata) { return super.callback(moxiecontext, moxiecallbackdata); public void onerror(moxiecontext moxiecontext, MoxieException moxieexception) { super.onerror(moxiecontext, moxieexception); ); 通过 MxParam.setTaskType 传 入不不同的值, 来打开不不同的功能, 目前魔蝎 支持的功能如下 : java MxParam.PARAM_TASK_MAIL( 或 MxParam.PARAM_TASK_EMAIL): 邮箱导 入 MxParam.PARAM_TASK_ONLINEBANK: 网银导 入 MxParam.PARAM_TASK_CARRIER: 运营商 - 接 入完成 - - MxParam 支持的可配置项说明 1. 设置 SDK 里里 页 面主 色调 mxparam.setthemecolor("#ff9500"); 2. 是否使 用缓存 默认账号会记住, 密码不不会记住 如果设置 YES, 则不不会有任何缓存 mxparam.setcachedisable(mxparam.param_common_yes); 3. 设置导 入过程中的 自定义提示 文案, 为居中显示 mxparam.setloadingviewtext(" 验证过程中不不会浪费您任何流量量 \n 请稍等 片刻 "); 4. 自定义返回事件 第 一步 : mxparam.setquitdisable(true); 第 二步 : 在 moxiecallback 里里 面根据回调的当前状态处理理, 具体 见 demo 的 BigFragment.java 类 5. 登录成功后可以提前退出 mxparam.setquitlogindone(mxparam.param_common_yes); 6. 自定义 Title, 还有更更多 方法请 用 IDE 查看
TitleParams titleparams = new TitleParams.Builder() // 设置返回键的 icon, 不不设置此 方法会默认使 用魔蝎的 icon.leftnormalimgresid(r.drawable.back) // 用于设置 selector, 表示按下的效果, 不不设置默认使 leftnormalimgresid() 设置的图 片.leftPressedImgResId(R.drawable.back) // 标题字体颜 色.titleColor(getContext().getResources().getColor(R.color.colorWhite)) //title 背景 色.backgroundColor(getContext().getResources().getColor(R.color.colorAccent)) // 设置右边 icon.rightnormalimgresid(r.drawable.refresh) // 是否 支持沉浸式.immersedEnable(true) //title 返回按钮旁边的 文字 ( 关闭 ) 的颜 色.leftTextColor(getContext().getResources().getColor(R.color.colorWhite)) //title 返回按钮旁边的 文字, 一般为关闭.leftText( 关闭 ).build(); mxparam.settitleparams(titleparams); 7. 设置回调创建任务信息 mxparam.setcallbacktaskinfo(true); 8. 设置协议地址 mxparam.setagreementurl("http://xxx"); 9. 设置协议 文字 mxparam.setagreemententrytext("xxx") 补充事项 1. 运营商 自动预填账户密码 : 通过如下 方式把 用户姓名 身份证 手机号和密码传 入, 打开 SDK 后我们会 自动填上去 使 用 方法如下 : MxLoginCustom logincustom = new MxLoginCustom(); Map<String, Object> loginparam = new HashMap<>(); loginparam.put("phone", "13588888888"); // 手机号 loginparam.put("name", " 普京 大帝 "); // 姓名 loginparam.put("idcard", "370205197405213513"); // 身份证 // 是否允许 用户修改以上信息 ( 目前仅 支持运营商 ) // MxParam.PARAM_COMMON_NO: 不不允许 用户在 页 面上修改身份证 / 手机号 / 姓名 / 密码 // MxParam.PARAM_COMMON_YES: 允许 用户在 页 面上修改身份证 / 手机号 / 姓名 / 密码 logincustom.seteditable(mxparam.param_common_no); logincustom.setloginparams(loginparam); mxparam.setlogincustom(logincustom); 2. 网银登录的 自定义 : 1. 支持直达指定银 行行并预填充账户和密码 // 自定义参数 MxLoginCustom logincustom = new MxLoginCustom(); // 1. 信 用卡 logincustom.setlogintype(mxlogincustom.login_type_v_creditcard); // 2. 直达指定的银 行行 logincustom.setlogincode("cmb"); // 3. 通过传 入 LoginParams 参数来指定登录账号 Map<String, Object> loginparams = new HashMap<>(); loginparams.put("username", "330681xxxxxxxxxx99"); loginparams.put("password", "123456"); // 参考 网银的 几种登录 方式 logincustom.addloginparams(mxlogincustom.login_params_k_idcard, loginparams); mxparam.setlogincustom(logincustom); 2. 支持多账号填充选择
// 自定义参数 MxLoginCustom logincustom = new MxLoginCustom(); // 1. 信 用卡 logincustom.setlogintype(mxlogincustom.login_type_v_creditcard); // 3. 直达指定的银 行行 logincustom.setlogincode("cmb"); // 4. 指定身份证 方式 Map<String, Object> logininfoidcard = new HashMap<>(); logininfoidcard.put("username", "330681xxxxxxxxxx99"); logininfoidcard.put("password", "123456"); // 设置为默认选中登录 方式 logininfoidcard.put(mxlogincustom.login_params_k_selected, MxParam.PARAM_COMMON_YES); // 5. 指定账号密码 方式 Map<String, Object> logininfousername = new HashMap<>(); logininfousername.put("username", "wangwu"); logininfousername.put("password", "121212"); // 6. 将以上的登录 方式加 入到 logincustom 中,key 值参考 网银的 几种登录 方式 logincustom.addloginparams(mxlogincustom.login_params_k_idcard, logininfoidcard); logincustom.addloginparams("username", logininfousername); 注意 : 这 里里的 USERNAME 为 login_type, 请通过调 用魔蝎的 API( https://api.51datakey.com/conf/api/v3/banks/all 和 https://api.51datakey.com/conf/api/v3/banks/{logincode/{logintype/login ) 进 行行确认 login_type 每家银 行行不不 一样, 总计有以下 几种 : IDCARD, USERNAME, MOBILE( 以 广发银 行行为例例 ), CARDNO, CLIENTNO( 仅浦发银 行行储蓄卡 ), CREDITCARDNO( 以招 行行信 用卡为例例 ), DEBITCARDNO( 以招 行行储蓄卡为例例 ) 3. 网银直达指定银 行行以下例例 子为打开农业银 行行信 用卡 页 面 mxparam.settasktype(mxparam.param_task_onlinebank); mxparam.setlogincustom( new MxLoginCustom() // 信 用卡.setLoginType(MxLoginCustom.LOGIN_TYPE_V_CREDITCARD) // 农业银 行行.setLoginCode("ABC") ); 4. 网银直达指定卡 片类型银 行行列列表 页 面 1. 信 用卡 mxparam.settasktype(mxparam.param_task_onlinebank); mxparam.setlogincustom( new MxLoginCustom().setLoginType(MxLoginCustom.LOGIN_TYPE_V_CREDITCARD) ); 2. 储蓄卡 mxparam.settasktype(mxparam.param_task_onlinebank); mxparam.setlogincustom( new MxLoginCustom().setLoginType(MxLoginCustom.LOGIN_TYPE_V_DEBITCARD) ); 5. 支持传 入 用户基本信息 mxparam.setphone("13588008800"); mxparam.setname(" 陶 XX"); mxparam.setidcard("33068119xxxxxxxx99"); 6. 支持传 入 用户基本信息
Map<String, Object> loginparams = new HashMap<>(); loginparams.put("username", "455049503@sohu.com"); loginparams.put("password", "123456"); // 独 立密码, 目前仅 支持 qq 邮箱 loginparams.put("sepwd", "123456"); mxparam.setlogincustom( new MxLoginCustom().setLoginCode("sohu.com").setLoginParams(loginParams) ); 1. 支持登录完成后直接退出 SDK mxparam.setquitlogindone(mxparam.param_common_yes); 2. 自定义返回事件 ( 物理理返回键和 actionbar 的返回按钮为同 一个 行行为 ) 具体代码参照 BigdataFragment.java java new MoxieCallBack() { public boolean callback(moxiecontext moxiecontext, MoxieCallBackData moxiecallbackdata) { // ret 3. 公积 金金 自动登录 MxLoginCustom logincustom = new MxLoginCustom(); Map<String, String> userparams = new HashMap<>(); // 这个 key 不不 一定是 account, 有可能是其他值, 根据实际情况 自 己传 入 userparams.put("account", "123456789"); userparams.put("password", "moxie123456"); Map<String, Object> loginparams = new HashMap<>(); //key 为 1,2,3.. 分别表示登录的三种 方式 : 客户号, 用户名, 市 民邮箱.. loginparams.put("1", userparams); // 直达指定城市 页 面 logincustom.setlogincode("310000"); logincustom.setloginparams(loginparams); mxparam.setlogincustom(logincustom); 4. 自定义导 入进度界 面 1. 第 一步 : 通过继承 android.app.fragment 并实现 StatusViewListener 接 口的 void update Progress(JSONObject jsonobject) 方法来实现 自定义的导 入界 面, 参考 Demo 里里的 ImportResultFragment.java 类 public class ImportResultFragment extends Fragment implements StatusViewListener { public void updateprogress(jsonobject jsonobject) { Log.e("ImportResultFragment", jsonobject.tostring()); // 返回进度 状态信息 账号 String percent = jsonobject.optstring("percent"); String message = jsonobject.optstring("message"); String account = jsonobject.optstring("account"); 2. 第 二步 : 实现 StatusViewHandler 接 口的 statusviewformoxiesdk 方法, 返回 一个 android.app.fragment, 参考 Demo 里里的 StatusViewHandlerImpl.java 类 public class StatusViewHandlerImpl implements StatusViewHandler { public Fragment statusviewformoxiesdk() { return new ImportResultFragment(); 3. 第三步 : 将实现了了 StatusViewHandler 的类通过 setstatusviewhandle 设置, 如下 MoxieSDK.getInstance().setStatusViewHandler(new StatusViewHandlerImpl()); 5. 实现静默更更新 1. 第 一步在 AndroidManifest.xml 里里 面的 com.moxie.client.mainactivity 配置增加 android:theme="@android:style/theme.translucent.notitlebar" <activity android:name="com.moxie.client.mainactivity" android:windowsoftinputmode="adjustresize statealwayshidden" android:theme="@android:style/theme.translucent.notitlebar"> 2. 第 二步
通过 MoxieSDK.getInstance().startInMode() 方法打开 sdk MoxieSDK.getInstance().startInMode(getActivity(), MoxieSDKRunMode.MoxieSDKRunModeBackground, mxparam, new MoxieCallBack(){ public boolean callback(moxiecontext moxiecontext, MoxieCallBackData moxiecallbackdata) { // 实现参考 Demo 里里的 BigdataFragment return false; ); 更更新 日志 V2.3.5 2. 减 小包 大 小 V2.3.4 2. 优化内部逻辑 V2.3.2 1. 修复设置 callbacktaskinfo 不不 生效的问题 V2.3.1 V2.3.0 1. 优化 网络请求 2. 修改 MxParam 的配置 方式 3. 修复已知问题 V2.2.1 2. 优化导 入 v2.2.0 支持 支付宝 无障碍辅助认证 v2.0.0 支持静默更更新 v1.3.6 2. 腾讯 x5 内核外置 3. MxParam 去掉 agreementurl 和 agreemententrytext 字段, 协议改为服务端配置 v1.3.5 1. 支持 自定义导 入 页 面 2. 减少 sdk 大 小 v1.3.4 1. 优化 支付宝 二维码扫描体验 ( 支持截屏 ) v1.3.3 1. 增加错误 日志收集 2. 优化 支付宝 二维码扫描体验 ( 直接打开 支付宝进 行行扫描 ) v1.3.2.3 兼容 eclipse 的接 入 方式 v1.3.2.2
1. 使 用腾讯 x5 webview, 解决兼容性问题 2. 第三 方官 网 页 面 自适应 大 小 v1.3.2.1 回调增加 logindone 字段来判断是否登录成功 v1.3.2 修复 支付宝账单解析失败的问题 v1.3.1.1 1. 增加沉浸式状态栏的 支持 2. 物理理返回键的接 口和任务回调接 口合并 3. 修复 139 邮箱的重复登录失败的问题 v1.3.1 1. 全新的接 入 方式 2. 修复与 hibird app 的兼容性问题 3. 对上传 文件加密, 更更安全 4. 增加同业爬取 5. 修复 quitlogindone 字段 无法使 用的情况 v1.3.0 1. 支付宝爬取框架升级, 支持淘宝 支付宝互爬 2. actionbar 增加关闭按钮 v1.2.9 支付宝爬取的优化 v1.2.8 1. 导 入进度 页 面 支持通过 MxParam 传 入 自定义 文字来替换默认的导 入进度 2. 定制返回键或者 actionbar 返回按钮的 行行为 3. 社保 公积 金金 支持传 入account, password 以完成 自动登录 4. 支持 自定义 title, 详情 见补充事项 十 一 v1.2.7 1. 增加跳转到指定邮箱并完成 自动登录的功能 2. 增加社保导 入的功能 v1.2.6 1. 优化 webview 2. 增加邮箱账单导 入从魔蝎 H5 跳转到官 方H5 的功能 V1.2.5 1. 支持传 入 用户基本信息 ( 请看补充事项四 ) v1.2.4 1. 征信报告新版本发布 ( 请看补充事项三 ) 2. 网银 支持 自定义参数传 入 ( 请看补充事项 二 ) 3. 回调格式优化 ( 升级时必须注意!!! 具体请看 [5. 接收回调 ]) v1.2.3 增加设备指纹 v1.2.2 增加同意协议描述语的 自定义传 入 v1.2.1 优化 LINKEDIN 认证 v1.2.0 1. 网银 & 邮箱账单升级 2. 增加个税 3. progurad 优化 ( 代码有混淆时请务必更更新 progurad-rules.pro) v1.1.9 回调增加 account
v1.1.8 增加 linkedin 认证 v1.1.7 移除 支付宝 API 登录和京东 API 登录 v1.1.6 增加法院失信 人查询和被执 行行 人查询 v1.1.5 1. 增加爬取失败时 自定义退出 Option 2. 回调增加 Message 字段 3. 回调增加 code=-4 的情况 v1.1.4 任务处理理 日志上传 v1.1.3 增加脉脉认证 v1.1.2 1. 允许运营商传 入 手机号 身份证和姓名 2. 改变打开 SDK 时的传递参数 方式 ( 请根据 文档对接 ) v1.1.1 1. 增加 支付宝 & 京东后台认证接 口 2. 修复 126& 阿 里里云邮登录失败的问题 v1.1.0 1. 公积 金金增加维护城市显示 2. 自定义 SDK 多种颜 色 (Banner 颜 色 页 面主题 色 ) 3. 自定义 用户使 用协议