hvb

# 百川电商SDK3.1.1.99接入文档-Android## Android SDK 集成

#### Gradle接入方式(3.1+ 版本支持)1, 获得安全图片(图片获取方式见接入准备文档),并放在/res/drawable目录下,如果已经有安全图片,需要替换。2, 老用户升级,请先删除原来的所有jar & aar依赖,包括alisdk-kernel, alisdk-kernel-base, alisdk-login, alisdk-rpc, alisdk-security, alisdk-system, alisdk-ui, nbsdk-trade等。3, Gradle配置    `在整个项目的gradle基础配置文件中加入仓库地址`    ```    allprojects {        repositories {            jcenter()            maven {                url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"            }        }    } ```  `在项目module的gradle文件中加入相关依赖` ```          dependencies {            //fastjson        compile 'com.alibaba:fastjson:1.2.9'        //支付        compile 'com.alibaba.alipay:alipaySingle:20160825@jar'        //登陆        compile 'com.ali.auth.sdk:alibabauth_core:1.1.4@jar'        compile 'com.ali.auth.sdk:alibabauth_ui:1.1.4@aar'        compile 'com.ali.auth.sdk:alibabauth_ext:1.1.4@jar'        //【可选】仅供特殊合作伙伴使用        compile 'com.ali.auth.sdk:alibabauth_accountlink:1.1.4@jar'        //安全基础        compile 'com.taobao.android:securityguardaar3:5.1.81@aar'        //【可选】安全高级,如使用了发放红包、优惠券高级功能,则必须引入        compile 'com.taobao.android:securitybodyaar3:5.1.25@aar'        //Mtop网关        compile 'com.taobao.android:mtopsdk_allinone_open:1.2.2.4@jar'        //applink        compile 'com.alibaba.sdk.android:alibc_link_partner:1.1.0.0'        //UT        compile 'com.taobao.android:utdid4all:1.1.5.3_proguard@jar'        compile 'com.alibaba.mtl:app-monitor-sdk:2.5.1.3_for_bc_proguard@jar'        //电商SDK        compile 'com.alibaba.sdk.android:alibc_trade_common:3.1.1.99'        compile 'com.alibaba.sdk.android:alibc_trade_biz:3.1.1.99'        compile 'com.alibaba.sdk.android:alibc_trade_sdk:3.1.1.99'            }      ```  #### Maven接入方式 (3.1+ 版本支持)1, 获得安全图片(图片获取方式见接入准备文档),并放在/res/drawable目录下,如果已经有安全图片,需要替换。2, 老用户升级,请先删除原来的所有jar & aar依赖,包括alisdk-kernel, alisdk-kernel-base, alisdk-login, alisdk-rpc, alisdk-security, alisdk-system, alisdk-ui, nbsdk-trade等。3, pom 配置```com.alibabafastjson1.2.9jarcom.alibaba.alipayalipaySingle20160825jarcom.ali.auth.sdkalibabauth_core1.1.4jarcom.ali.auth.sdkalibabauth_ui1.1.4aarcom.ali.auth.sdkalibabauth_ext1.1.4jar//【可选】仅供特殊合作伙伴使用com.ali.auth.sdkalibabauth_accountlink1.1.4jarcom.taobao.androidsecurityguardaar35.1.81aarcom.taobao.androidsecuritybodyaar35.1.25aarcom.taobao.androidmtopsdk_allinone_open1.2.2.4com.taobao.androidalibc_link_partnerjar1.1.0.0com.taobao.androidutdid4all1.1.5.3_proguardcom.alibaba.mtlapp-monitor-sdk2.5.1.3_for_bc_proguardaarcom.alibaba.sdk.androidalibc_trade_common3.1.1.99aarcom.alibaba.sdk.androidalibc_trade_biz3.1.1.99aarcom.alibaba.sdk.androidalibc_trade_sdk3.1.1.99aar```  #### aar 接入方式1, 获得安全图片(图片获取方式见接入准备文档),并放在/res/drawable目录下,如果已经有安全图片,需要替换。2, 老用户升级,请先删除原来的所有jar & aar依赖,包括alisdk-kernel, alisdk-kernel-base, alisdk-login, alisdk-rpc, alisdk-security, alisdk-system, alisdk-ui, nbsdk-trade等。3, 下载电商SDK Libs,解压,将电商SDK的aar,jar,导入工程。4, Android Studio用户,需要配置build.gradle    ```    repositories {        flatDir {            dirs 'libs'        }}      dependencies {            //fastjson        compile(name: 'fastjson-1.2.9', ext: 'jar')            //支付        compile(name: 'alipaySingle-20160825', ext: 'jar')                //登陆        compile(name: 'alibabauth_core-1.1.4', ext: 'jar')        compile(name: 'alibabauth_ui-1.1.4', ext: 'aar')        compile(name: 'alibabauth_ext-1.1.4', ext: 'jar')        //【可选】仅供特殊合作伙伴使用        compile(name: 'alibabauth_accountlink-1.1.0.5', ext: 'jar')                        //安全基础        compile(name: 'securityguardaar3-5.1.81', ext: 'aar')        //【可选】安全高级,如使用了发放红包、优惠券高级功能,则必须引入        compile(name: 'securitybodyaar3-5.1.25', ext: 'aar')                //Mtop网关        compile(name: 'mtopsdk_allinone_open-1.2.2.4', ext: 'jar')                //applink        compile(name: 'alibc_link_partner-1.1.0.0', ext: 'jar')                //UT        compile(name: 'utdid4all-1.1.5.3_proguard', ext: 'jar')        compile(name: 'app-monitor-sdk-2.5.1.3_for_bc_proguard', ext: 'aar')                //电商SDK        compile(name: 'alibc_trade_common-3.1.1.99', ext: 'aar')        compile(name: 'alibc_trade_biz-3.1.1.99', ext: 'aar')        compile(name: 'alibc_trade_sdk-3.1.1.99', ext: 'aar')            }      ```#### Proguard 规则  ```    -keepattributes Signature    -keep class sun.misc.Unsafe { *; }    -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.**  {*;}  ```

## 快速入门

#### 初始化SDK导入后,即可在代码中使用百川相关组件,在使用具体功能前需要在应用的入口方法(Application的onCreate)中初始化百川SDK```    public class DemoApplication extends Application {        @Override        public void onCreate() {            super.onCreate();                    AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {                @Override                public void onSuccess() {                    //初始化成功,设置相关的全局配置参数                                // ...                }                @Override                public void onFailure(int code, String msg) {                    //初始化失败,可以根据code和msg判断失败原因,详情参见错误说明                }            });        }    }```

#### 资源销毁在使用完成后,可以调用destroy方法,释放百川相应的资源引用```    AlibcTradeSDK.destroy();    ```

#### 电商API使用初始化完成后,就可以使用百川提供的功能组件,通过调用AlibcTrade的show方法,传入相应的page(page详情,参考下面API详细说明),来完成调用。```    //提供给三方传递配置参数    MapexParams = new HashMap<>();    exParams.put(AlibcConstants.ISV_CODE, "appisvcode");        //商品详情page    AlibcBasePage detailPage = new AlibcDetailPage(itemId);        //实例化店铺打开page    AlibcBasePage shopPage = new AlibcShopPage(shopId);        //实例化添加购物车打开page    AlibcBasePage addCardPage = new AlibcAddCartPage(itemId)        //实例化我的订单打开page    AlibcBasePage ordersPage = new AlibcMyOrdersPage(status, allOrder);        //实例化我的购物车打开page    AlibcBasePage myCartsPage = new AlibcMyCartsPage();            //实例化URL打开page    AlibcBasePage page = new AlibcPage(taokeUrl);    //设置页面打开方式    AlibcShowParams showParams = new AlibcShowParams(OpenType.Native, false);        //使用百川sdk提供默认的Activity打开detail    AlibcTrade.show(context, detailPage, showParams, null, exParams ,    new AlibcTradeCallback() {        @Override        public void onTradeSuccess(AlibcTradeResult tradeResult) {    //打开电商组件,用户操作中成功信息回调。tradeResult:成功信息(结果类型:加购,支付;支付结果)        }            @Override        public void onFailure(int code, String msg) {            //打开电商组件,用户操作中错误信息回调。code:错误码;msg:错误信息        }    });        /使用自己的Activity & webview打开detail    AlibcTrade.show(context, webView, webViewClient, webChromeClien, tdetailPage, showParams, null, exParams ,    new AlibcTradeCallback() {        @Override        public void onTradeSuccess(AlibcTradeResult tradeResult) {    //打开电商组件,用户操作中成功信息回调。tradeResult:成功信息(结果类型:加购,支付;支付结果)        }            @Override        public void onFailure(int code, String msg) {            //打开电商组件,用户操作中错误信息回调。code:错误码;msg:错误信息        }    });```

## API 说明

#### 初始化SDK初始化百川电商相关组件,该方法异步执行,使用百川电商相关功能前,必须调用初始化。```  /**    * 百川电商SDK初始化【异步】    *    * @param context 建议设置Application(必填)    * @param initResultCallback  初始化状态信息回调(可以为null)    */  AlibcTradeSDK.asyncInit(Context context, AlibcTradeInitCallback initResultCallback)```

#### 调用电商组件**1. 外部传入webview方式打开电商组件**[注意]:当传入webviewClient,并重载shouldOverrideUrlLoading方法时,遇到淘系链接情况下(即访问淘宝、天猫、登录、购物车等页面时),该方法返回值要为false,否则可能会出现业务流程错误问题。```    /**    * 打开电商组件,支持使用外部webview    *    * @param activity            必填    * @param webView              外部 webView    * @param webViewClient        webview的webViewClient    * @param webChromeClient      webChromeClient客户端    * @param tradePage            页面类型,必填,不可为null,详情见下面tradePage类型介绍    * @param showParams          show参数    * @param taokeParams          淘客参数    * @param trackParam          yhhpass参数    * @param tradeProcessCallback 交易流程的回调,必填,不允许为null;    * @return 0标识跳转到手淘打开了,1标识用h5打开,-1标识出错    */      AlibcTrade.show(activity, webView, webViewClient, webChromeClient, tradePage, showParams, taokeParams, trackParam, new AlibcTradeCallback() {        @Override    public void onTradeSuccess(AlibcTradeResult tradeResult) {    //打开电商组件,用户操作中成功信息回调。tradeResult:成功信息(结果类型:加购,支付;支付结果)    }    @Override    public void onFailure(int code, String msg) {        //打开电商组件,用户操作中错误信息回调。code:错误码;msg:错误信息    }});```

**2. 提供默认的webview打开电商组件**```  /**    * 打开电商组件, 使用默认的webview打开    *    * @param activity            必填    * @param tradePage            页面类型,必填,不可为null,详情见下面tradePage类型介绍    * @param showParams          show参数    * @param taokeParams          淘客参数    * @param trackParam          yhhpass参数    * @param tradeProcessCallback 交易流程的回调,必填,不允许为null;    * @return 0标识跳转到手淘打开了,1标识用h5打开,-1标识出错    */    AlibcTrade.show(activity, tradePage, showParams, taokeParams, trackParam, new AlibcTradeCallback() {        @Override    public void onTradeSuccess(AlibcTradeResult tradeResult) {    //打开电商组件,用户操作中成功信息回调。tradeResult:成功信息(结果类型:加购,支付;支付结果)    }    @Override    public void onFailure(int code, String msg) {        //打开电商组件,用户操作中错误信息回调。code:错误码;msg:错误信息    }});```

#### Page类型

**详情**```    /**    * 功能说明:商品详情页面    */    public class AlibcDetailPage {              /**        * 商品详情页        * @param itemId 支持itemId和openItemId的商品,必填,不允许为null;        *              eg.37196464781L;AAHd5d-HAAeGwJedwSnHktBI;        */      public AlibcDetailPage(String itemId)    }```

**店铺**```    /**    * 功能说明:店铺页面    */    public class AlibcShopPage {      /**        * 店铺页面        * @param shopId 店铺id,支持明文id        */      public AlibcShopPage(String shopId)    }```

**加购物车**```    /**    * 功能说明:加购页面    */    public class AlibcAddCartPage {      /**        * 加入购物车页面        * @param itemId 支持itemId和openItemId的商品,必填,不允许为null;        *              eg.37196464781L;AAHd5d-HAAeGwJedwSnHktBI;        */      public AlibcAddCartPage(String itemId)    }```

**我的订单**```    /**    * 功能说明:我的订单页面    */    public class AlibcMyOrdersPage {      /**        * 我的订单页面        *        * @param status  默认跳转页面;填写:0:全部;1:待付款;2:待发货;3:待收货;4:待评价        * @param allOrder false 进行订单分域(只展示通过当前app下单的订单),true 显示所有订单        */      public AlibcMyOrdersPage(int status, boolean allOrder)    }```

**我的购物车**```    /**    * 功能说明:我的购物车页面    */    public class AlibcMyCartsPage {      /**        * 购物车页        */      public AlibcMyCartsPage()    }```

**url打开页面**```    /**    * 功能说明:url展示页面    */    public class AlibcPage {      /**        * url展示页面        * @param url 要展示的url        */      public AlibcPage(String url)    }```

#### 释放电商SDK相关资源```  /**    * 销毁电商SDK相关资源引用,防止内存泄露    */  AlibcTradeSDK.destory()```

#### 设置SDK API调用默认方式```  /**    * 是否走强制H5的逻辑。false:按照默认规则策略打开页面;true:全部页面均为H5打开;    * 注意:初始化完成后调用才能生效    *    * @param isforceH5 (默认为false)    * @return 返回打开策略是否设置成功    */  AlibcTradeSDK.setForceH5(boolean isforceH5)```

#### 设置SDK 淘客打点策略 ```  /**    * 设置是否使用同步淘客打点。true:使用淘客同步打点;false:关闭同步打点,使用异步打点;    * 注意:初始化完成后调用才能生效;在加购场景下,只有异步淘客打点    *    * @param isSyncForTaoke(默认为true)    * @return 返回同步淘客打点策略是否设置成功    */  AlibcTradeSDK.setSyncForTaoke(boolean isSyncForTaoke)```

#### 设置淘客全局参数```  /**    * 设置全局淘客参数,方便开发者用同一个淘客参数,不需要在show接口重复传入    * 注意:初始化完成后调用才能生效    *    * @param taokeParams 淘客参数    */  AlibcTradeSDK.setTaokeParams(AlibcTaokeParams taokeParams) ```

#### 设置渠道信息```  /**    * 设置渠道信息(如果有渠道专享价,需要设置)    * 注意:初始化完成后调用才能生效    *    * @param typeName    : 渠道类型(默认为:0)    * @param channelName : 渠道名称(默认为:null)    */  AlibcTradeSDK.setChannel(String typeName, String channelName)```

#### 设置ISV code```  /**    * 设置isvCode    * 注意:初始化完成后调用才能生效    *    * @param isvCode    * @return 返回isv code是否设置成功    */  AlibcTradeSDK.setISVCode(String isvCode)```

#### 设置ISV 版本```  /**    * 设置isv的版本 ,通常为三方app版本,可以不进行设置;默认1.0.0    * 注意:初始化完成后调用才能生效    *    * @param isvVersion    * @return 返回isv version是否设置成功    */  AlibcTradeSDK.setISVVersion(String isvVersion)```

## 3.1版本主要变化

#### 主要接口变化`1. 初始化用户不用再传入app key``2. 使用电商SDK,打开detail,shop等功能,接口调用方式升级````//3.0方式IAliTradeService aliTradeService = AliTradeSDK.getService(IAliTradeService.class);aliTradeService.show(this,tradeBasePage, showParams,null, exParams, new AliTradeProcessCallback() {    @Override        public void onTradeSuccess(AliTradeResult tradeResult) {}    @Override    public void onFailure(int code, String msg) {}}); //3.1方式AlibcTrade.show(this,tradeBasePage, showParams,null, exParams, new AlibcTradeCallback() {    @Overridesult    public void onTradeSuccess(AlibcTradeResult tradeResult) {}    @Override    public void onFailure(int code, String msg) {}});```#### 主要类改名一览| SDK 3.0 | SDK 3.1 | |:-----------|:------------|| AliTradeSDK | AlibcTradeSDK |          | AliTradeService | AlibcTrade |        | AliTradeShowParams | AlibcShowParams |          | AliTradeTaokeParams | AlibcTaokeParams |            | AliTradePage | AlibcPage | | AliTradeDetailPage | AlibcDetailPage || AliTradeShopPage | AlibcShopPage || AliTradeMyOrdersPage | AlibcMyOrdersPage || AliTradeAddCartPage | AlibcAddCartPage || AliTradeMyCartsPage | AlibcMyCartsPage || SDK 3.1 | SDK 3.1.1.99 | |:-----------|:------------|| TradeResult | AlibcTradeResult |          | ResultType | AlibcResultType |        | AlibcConfig | AlibcConfigService |          | TBAppLinkUtil | ALPLinkKeyType(TMALL_SCHEME 变更为 TMALL ,TAOBAO_SCHEME 变更为 TAOBAO) |            | AlibcContext.Environment | 包名变更 com.alibaba.baichuan.trade.common.Environment | | AlibcTaokeParams | 包名变更 com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams || AlibcLogin | 包名变更 com.alibaba.baichuan.trade.biz.login.AlibcLogin || AlibcLoginCallback | 包名变更 com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback || AlibcLoginCallback | 包名变更 com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback |#### 3.1升级到3.1.1.99版本主要变更AlibcTradeSDK拆分为三部分,AlibcTradeCommon,AlibcTradeBiz,AlibcTradeSDK;AlibcApplink升级为AlibcLinkPartner;优化淘客流程;优化WebView代理方式;优化百川模块耦合;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • (绝对原创,转载请大家注明下出处) 最近集成了阿里百川的sdk 版本号“电商SDK-3.1.1.206,百川后台更...
    alphet阅读 3,837评论 0 3
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘请别为难小僧阅读 7,184评论 0 132
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,395评论 25 707
  • 通览全部UI,先统一对基础控件进行自定义,不要一出来UI就闷头开干,这样可能写出来多个功能重复的自定义控件. 文件...
    萧旭阅读 207评论 0 0