百川SDK-Android接入文档

更新时间:2024/08/01 访问次数:136346

新媒体接入指南

准备工作

  • 申请百川无线应用(已有百川应用的用户此步骤跳过)
    • 首先在控制台申请入驻百川,成为百川开发者,并创建好自己的应用
    • 如何申请
  • 下载安全图片
    • 4.0.0.15版本开始,安全图片的名称改成 yw_1222_baichuan.jpg
    • 新用户,在应用申请成功以后,需要进入百川控制台,点此进入,在该页面选择自己的应用,然后获取最新的安全图片,安卓需要将安全图片放在/res/drawable目录下;由于本次SDK审计包括安全图片,所以针对老用户也需要重新获取安全图片,并下载到本地
    • image
  • 开通业务产品的使用权限
    image

标准版最新SDK版本说明:
百川sdk不再对外提供线上仓库依赖,提供本地包下载地址,由接入侧采用本地依赖或者自有仓库的方式进行sdk依赖,本地依赖方式保持不变,可参见下文相关内容;
该版本的下载链接参见:
https://union-baichuan.oss-cn-hangzhou.aliyuncs.com/%E5%90%88%E8%A7%84%E5%8C%85%20%281%29.zip
注:该版本需使用V6版本的安全图片,V6版本的安全图片可在《百川套件平台》 下载

Android百川组件说明

  • 打包体积说明(待定)
  • 基础安全组件(必选)
    • 安全黑匣子(无线保镖),加密&解密,安全签名,风控相关内容;其中包含 x86、x86_64、arm64-v8a、armeabi、armeabi-v7a 五个架构平台的so包,整包大小为1.8M,每个平台的so包为400kb左右,可以进行裁剪;如需裁剪,请联系百川技术同学
      更新说明:目前基础安全组件提供新的优化版本(v6),如果需要可自行从该地址下载本地包(包含5个aar包),通过本地依赖的方式替换(v6版本安全保镖需要对应获取v6的安全图片,安全图片获取参见上文)
      附:新的优化安全组件版本下载地址(http://baichuan-sdk.cn-hangzhou.oss-pub.aliyun-inc.com/48/android/5.0.0.20/%E4%BF%9D%E9%95%96%E5%90%88%E8%A7%84%E6%96%B0%E7%89%88%E6%9C%AC5.0.0.20.zip)
      新版本依赖方式(name自行命名):

      implementation(name:'securityguardaar3', ext:'aar')
      implementation(name:'securitybodyaar3', ext:'aar')
      implementation(name:'noCaptch', ext:'aar')
      implementation(name:'misc', ext:'aar')
      implementation(name:'sgmiddletier', ext:'aar')

      老版本:

      implementation  'com.taobao.android:securityguardaar3:5.4.171@aar' 
      implementation 'com.taobao.android:securitybodyaar3:5.4.99@aar' 
      implementation 'com.taobao.android:avmpaar3:5.4.36@aar' 
      implementation 'com.taobao.android:sgmiddletieraar3:5.4.9@aar'
  • mtop(必选)

    • Mtop,网关(稳定的高性能无线RPC网关,网关本身包含了一套安全体系,包括加密传输、防攻击、防刷、防篡改、过载保护等安全策略,同时针对无线网络的特点,在连通性、网络加速、流量方面进行了针对性优化)(177kb)
    implementation 'com.taobao.android:mtopsdk_allinone_open:3.1.2.5@jar'
  • 登录授权(必选)
    implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.11@aar'
    implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.11@aar'
    implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.11@aar'
  • appLink(必选)
    • applink,打通“手机淘宝”与三方app的桥梁,实现手机淘宝与三方app之间的往返跳转,包括登陆时跳手淘授权,用手淘打开商品页,店铺等(53kb)
    implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar'
  • ut (必选)
  • ut 用于分佣打点追踪
    implementation ‘com.taobao.android:utdid4all:1.5.2’
    implementation ‘com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc’
  • 基础电商组件(必选)

    • 包含打开detail,淘客分佣,jsbridge注入等功能.
    implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.16@aar'
    implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.16@aar'
    implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.16@aar'

aar接入方式

  • 获得安全图片(图片获取方式见接入准备文档),并放在/res/drawable目录下,如果已经有安全图片,需要替换。
  • 老用户升级,请先删除原来的所有jar & aar依赖
  • 将各个sdk的aar文件下载放到到本地工程的libs目录下,按照如下方式接入:(name以实际的本地aar或jar包的名字为准)
dependencies {
    .....
    //登陆
    implementation(name:'alibabauth_core', ext:'jar')
    implementation(name:'alibabauth_ui', ext:'aar')
    implementation(name:'alibabauth_ext', ext:'jar')
    //安全组件
    implementation(name:'securityguardaar3', ext:'aar')
    implementation(name:'securitybodyaar3', ext:'aar')
    implementation(name:'avmpaar3', ext:'aar')
    implementation(name:'MiddleTierSDK-external-debug', ext:'aar')
    //Mtop
    implementation(name:'mtopsdk_allinone_open', ext:'jar')
    //applink
    implementation(name:'alibc_link_partner', ext:'aar')
    //ut
    implementation(name:'utdid4all', ext:'jar')
    implementation(name:'app-monitor-sdk', ext:'jar')
    // 电商基础组件
    implementation(name:'AlibcTradeCommon', ext:'aar')
    implementation(name:'AlibcTradeBiz', ext:'aar')
    implementation(name:'nb_trade', ext:'aar')
    implementation 'com.alibaba:fastjson:1.2.41@jar'
    .....
}

混淆原则

-keepattributes Signature
-ignorewarnings
-keep class javax.ws.rs.** { *; }
-keep class com.alibaba.fastjson.** { *; }
-dontwarn com.alibaba.fastjson.**
-keep class sun.misc.Unsafe { *; }
-dontwarn sun.misc.**
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-keep class com.alipay.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-keep class com.ut.** {*;}
-dontwarn com.ut.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**
-keep class org.json.** {*;}
-keep class com.ali.auth.**  {*;}
-dontwarn com.ali.auth.**
-keep class com.taobao.securityjni.** {*;}
-keep class com.taobao.wireless.security.** {*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep interface mtopsdk.mtop.global.init.IMtopInitTask {*;}
-keep class * implements mtopsdk.mtop.global.init.IMtopInitTask {*;}

快速入门

初始化

AlibcTradeSDK.init(this, new AlibcTradeInitCallback() {
    @Override
    public void onSuccess() {
        Toast.makeText(BaseApplication.this, "初始化成功", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailure(int code, String msg) {
        Toast.makeText(BaseApplication.this, "初始化失败", Toast.LENGTH_SHORT).show();
    }
});

环境设置

// 异步执行环境设置,接入方可自行选择合适时机执行,执行完成后方可调用百川电商相关能力
AlibcTradeSDK.asyncExecuteSetup();

电商API的使用


// 以code的方式打开电商页面(eg:详情--detail,店铺--shop) // 页面实例 AlibcBasePage page = new AlibcDetailPage(itemId); AlibcBasePage page = new AlibcShopPage(shopId); //展示参数配置 AlibcShowParams showParams = new AlibcShowParams(); showParams.setOpenType(openType); showParams.setClientType(clientType); showParams.setBackUrl(BACK_URL); showParams.setNativeOpenFailedMode(nativeOpenFailedMode); // showParam各参数介绍 1、OpenType(页面打开方式): 枚举值(Auto和Native),Native表示唤端,Auto表示不做设置 2、clientType表示唤端类型:taobao---唤起淘宝客户端;tmall---唤起天猫客户端 3、BACK_URL(小把手):唤端返回的scheme (如果不传默认将不展示小把手;如果想展示小把手,可以自己传入自定义的scheme, 或者传入百川提供的默认scheme:"alisdk://") 4、AlibcFailModeType(唤端失败模式): 枚举值如下 AlibcNativeFailModeNONE:不做处理; AlibcNativeFailModeJumpBROWER:跳转浏览器; AlibcNativeFailModeJumpDOWNLOAD:跳转下载页; AlibcNativeFailModeJumpH5:应用内webview打开) (注:AlibcNativeFailModeJumpBROWER不推荐使用) // taokeParams(淘客)参数配置:配置aid或pid的方式分佣 参数说明: pid unionId subPid adzoneId extraParams (注:1、如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败; 2、如果是打开店铺页面(shop),需要在extraParams中显式传入sellerId,否则同步打点转链失败) AlibcTaokeParams taokeParams = new AlibcTaokeParams("", "", ""); taokeParams.setPid("mm_112883640_11584347_72287650277"); taokeParams.setAdzoneid("72287650277"); //adzoneid是需要taokeAppkey参数才可以转链成功&店铺页面需要卖家id(sellerId),具体设置方式如下: taokeParams.extraParams.put("taokeAppkey", "xxxxx") taokeParams.extraParams.put("sellerId", "xxxxx") //自定义参数 Map<String, String> trackParams = new HashMap<>(); AlibcTrade.openByBizCode(FeatureActivity.this, page, null, new WebViewClient(), new WebChromeClient(), "detail", showParams, taokeParams, trackParams, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult tradeResult) { // 交易成功回调(其他情形不回调) AlibcLogger.i(TAG, "open detail page success"); } @Override public void onFailure(int code, String msg) { // 失败回调信息 AlibcLogger.e(TAG, "code=" + code + ", msg=" + msg); if (code == -1) { Toast.makeText(FeatureActivity.this, "唤端失败,失败模式为none", Toast.LENGTH_SHORT).show(); } } }); // 以显示传入url的方式打开页面(第二个参数是套件名称) AlibcTrade.openByUrl(FeatureActivity.this, "", url, null, new WebViewClient(), new WebChromeClient(), showParams, taokeParams, trackParams, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult tradeResult) { AlibcLogger.i(TAG, "request success"); } @Override public void onFailure(int code, String msg) { AlibcLogger.e(TAG, "code=" + code + ", msg=" + msg); if (code == -1) { Toast.makeText(FeatureActivity.this, msg, Toast.LENGTH_SHORT).show(); } } });

注:
关于直接打开s.click链接分佣说明
百川SDK不支持s.click(或uland)链接的二次转链逻辑,如果采用openByUrl方式打开该类链接,请勿传入pid等分佣参数;
若需要使用其他渠道获取的s.click链接进行分佣,可自行去淘客联盟后台生成自己的s.click链接或调用联盟服务接口生成。

API的一些说明

  • 页面类型(Page实例)

    • 相比旧版本,新版本不再支持AlibcPage,存在普通url的情况直接调用openByUrl即可;以下Page实例支持openByBizCode的方式调用。
    • 详情(商品详情页)
    @param itemId 支持itemId和openItemId的商品,必填,不允许为null; 
    比如: 37196464781L;AAHd5d-HAAeGwJedwSnHktBI;
      public class AlibcDetailPage {
       public AlibcDetailPage(String itemId);
      }
    • 店铺(店铺页面 )
    @param shopId 店铺id,支持明文id 
      public class AlibcShopPage {
       public AlibcShopPage(String shopId);
      }
  • sdk的其他配置

    • 设置淘客SDK打点的方式(同步或异步)

    /** * 提供配置文件和全局接口两种形式,全局接口优先,没有配置时以服务端下发的配置为准 * 设置是否使用同步淘客打点。true:使用淘客同步打点;false:关闭同步打点,使用异步打点; * 注意:初始化完成后调用才能生效 * * @param isSyncForTaoke(默认为false) * @return 返回同步淘客打点策略是否设置成功 */ public static boolean setSyncForTaoke(boolean isSyncForTaoke) 调用: AlibcTradeSDk.setSyncForTaoke(boolean isSyncForTaoke)
    • 登录组件

    //登录 public void login(View view) { AlibcLogin alibcLogin = AlibcLogin.getInstance(); alibcLogin.showLogin(new AlibcLoginCallback() { @Override public void onSuccess(int loginResult, String openId) { // 参数说明: // loginResult(0--登录初始化成功;1--登录初始化完成;2--登录成功) // openId:用户id Log.i(TAG, "获取淘宝用户信息: " + AlibcLogin.getInstance().getSession()); } @Override public void onFailure(int code, String msg) { // code:错误码 msg: 错误信息 } }); } //登出 public void logout(View view) { AlibcLogin alibcLogin = AlibcLogin.getInstance(); alibcLogin.logout(new AlibcLoginCallback() { @Override public void onSuccess(int loginResult, String openId) { // 参数说明: // loginResult(3--登出成功) // openId:用户id } @Override public void onFailure(int code, String msg) { // code:错误码 msg: 错误信息 } }); }
  • 设置渠道

    • 设置渠道信息(如果有特殊渠道专享价,需要设置,默认不要使用)
    • 注意:初始化完成后调用才能生效
    • @param typeName : 渠道类型(默认为:0)
    • @param channelName : 渠道名称(默认为:null)
    public static void setChannel(String typeName, String channelName)
    调用:
    AlibcTradeSDk.setChannel(String typeName, String channelName)
    • 设置isv版本
      • 提供isvcode全局接口
      • 设置isv的版本 ,默认1.0.0
      • 注意:初始化完成后调用才能生效
      • @param isvVersion (默认1.0.0)
      • @return 返回是否设置成功
    public static void setISVVersion(String isvVersion)
    调用:
    AlibcTradeSDk.setISVVersion(String isvVersion)
    附:百川SDK升级FAQ

FAQ

关于此文档暂时还没有FAQ
返回
顶部