# 百川电商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代理方式;优化百川模块耦合;
网友评论