百川电商SDK3.1.1.99接入文档-Android
Android SDK 集成
<br />
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 配置
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.9</version>
<type>jar</type>
</dependency>
<!--支付-->
<dependency>
<groupId>com.alibaba.alipay</groupId>
<artifactId>alipaySingle</artifactId>
<version>20160825</version>
<type>jar</type>
</dependency>
<!--登陆-->
<dependency>
<groupId>com.ali.auth.sdk</groupId>
<artifactId>alibabauth_core</artifactId>
<version>1.1.4</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.ali.auth.sdk</groupId>
<artifactId>alibabauth_ui</artifactId>
<version>1.1.4</version>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.ali.auth.sdk</groupId>
<artifactId>alibabauth_ext</artifactId>
<version>1.1.4</version>
<type>jar</type>
</dependency>
//【可选】仅供特殊合作伙伴使用
<dependency>
<groupId>com.ali.auth.sdk</groupId>
<artifactId>alibabauth_accountlink</artifactId>
<version>1.1.4</version>
<type>jar</type>
</dependency>
<!--安全基础-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>securityguardaar3</artifactId>
<version>5.1.81</version>
<type>aar</type>
</dependency>
<!--【可选】安全高级,如使用了发放红包、优惠券高级功能,则必须引入-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>securitybodyaar3</artifactId>
<version>5.1.25</version>
<type>aar</type>
</dependency>
<!--网关-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>mtopsdk_allinone_open</artifactId>
<version>1.2.2.4</version>
</dependency>
<!--AppLink-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>alibc_link_partner</artifactId>
<type>jar</type>
<version>1.1.0.0</version>
</dependency>
<!--UT-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>utdid4all</artifactId>
<version>1.1.5.3_proguard</version>
</dependency>
<dependency>
<groupId>com.alibaba.mtl</groupId>
<artifactId>app-monitor-sdk</artifactId>
<version>2.5.1.3_for_bc_proguard</version>
<type>aar</type>
</dependency>
<!--电商SDK-->
<dependency>
<groupId>com.alibaba.sdk.android</groupId>
<artifactId>alibc_trade_common</artifactId>
<version>3.1.1.99</version>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.alibaba.sdk.android</groupId>
<artifactId>alibc_trade_biz</artifactId>
<version>3.1.1.99</version>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.alibaba.sdk.android</groupId>
<artifactId>alibc_trade_sdk</artifactId>
<version>3.1.1.99</version>
<type>aar</type>
</dependency>
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.** {*;}
<br />
快速入门
<br />
初始化
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判断失败原因,详情参见错误说明
}
});
}
}
<br />
资源销毁
在使用完成后,可以调用destroy方法,释放百川相应的资源引用
AlibcTradeSDK.destroy();
<br />
电商API使用
初始化完成后,就可以使用百川提供的功能组件,通过调用AlibcTrade的show方法,传入相应的page(page详情,参考下面API详细说明),来完成调用。
//提供给三方传递配置参数
Map<String, String> exParams = 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:错误信息
}
});
<br />
API 说明
<br />
初始化SDK
初始化百川电商相关组件,该方法异步执行,使用百川电商相关功能前,必须调用初始化。
/**
* 百川电商SDK初始化【异步】
*
* @param context 建议设置Application(必填)
* @param initResultCallback 初始化状态信息回调(可以为null)
*/
AlibcTradeSDK.asyncInit(Context context, AlibcTradeInitCallback initResultCallback)
<br />
调用电商组件
1. 外部传入webview方式打开电商组件
<font color=#ff0000>
[注意]:当传入webviewClient,并重载shouldOverrideUrlLoading方法时,遇到淘系链接情况下(即访问淘宝、天猫、登录、购物车等页面时),该方法返回值要为false,否则可能会出现业务流程错误问题。</font>
/**
* 打开电商组件,支持使用外部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:错误信息
}
});
<br />
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:错误信息
}
});
<br />
Page类型
<br />
详情
/**
* 功能说明:商品详情页面
*/
public class AlibcDetailPage {
/**
* 商品详情页
* @param itemId 支持itemId和openItemId的商品,必填,不允许为null;
* eg.37196464781L;AAHd5d-HAAeGwJedwSnHktBI;
*/
public AlibcDetailPage(String itemId)
}
<br />
店铺
/**
* 功能说明:店铺页面
*/
public class AlibcShopPage {
/**
* 店铺页面
* @param shopId 店铺id,支持明文id
*/
public AlibcShopPage(String shopId)
}
<br />
加购物车
/**
* 功能说明:加购页面
*/
public class AlibcAddCartPage {
/**
* 加入购物车页面
* @param itemId 支持itemId和openItemId的商品,必填,不允许为null;
* eg.37196464781L;AAHd5d-HAAeGwJedwSnHktBI;
*/
public AlibcAddCartPage(String itemId)
}
<br />
我的订单
/**
* 功能说明:我的订单页面
*/
public class AlibcMyOrdersPage {
/**
* 我的订单页面
*
* @param status 默认跳转页面;填写:0:全部;1:待付款;2:待发货;3:待收货;4:待评价
* @param allOrder false 进行订单分域(只展示通过当前app下单的订单),true 显示所有订单
*/
public AlibcMyOrdersPage(int status, boolean allOrder)
}
<br />
我的购物车
/**
* 功能说明:我的购物车页面
*/
public class AlibcMyCartsPage {
/**
* 购物车页
*/
public AlibcMyCartsPage()
}
<br />
url打开页面
/**
* 功能说明:url展示页面
*/
public class AlibcPage {
/**
* url展示页面
* @param url 要展示的url
*/
public AlibcPage(String url)
}
<br />
释放电商SDK相关资源
/**
* 销毁电商SDK相关资源引用,防止内存泄露
*/
AlibcTradeSDK.destory()
<br />
设置SDK API调用默认方式
/**
* 是否走强制H5的逻辑。false:按照默认规则策略打开页面;true:全部页面均为H5打开;
* 注意:初始化完成后调用才能生效
*
* @param isforceH5 (默认为false)
* @return 返回打开策略是否设置成功
*/
AlibcTradeSDK.setForceH5(boolean isforceH5)
<br />
设置SDK 淘客打点策略
/**
* 设置是否使用同步淘客打点。true:使用淘客同步打点;false:关闭同步打点,使用异步打点;
* 注意:初始化完成后调用才能生效;在加购场景下,只有异步淘客打点
*
* @param isSyncForTaoke(默认为true)
* @return 返回同步淘客打点策略是否设置成功
*/
AlibcTradeSDK.setSyncForTaoke(boolean isSyncForTaoke)
<br />
设置淘客全局参数
/**
* 设置全局淘客参数,方便开发者用同一个淘客参数,不需要在show接口重复传入
* 注意:初始化完成后调用才能生效
*
* @param taokeParams 淘客参数
*/
AlibcTradeSDK.setTaokeParams(AlibcTaokeParams taokeParams)
<br />
设置渠道信息
/**
* 设置渠道信息(如果有渠道专享价,需要设置)
* 注意:初始化完成后调用才能生效
*
* @param typeName : 渠道类型(默认为:0)
* @param channelName : 渠道名称(默认为:null)
*/
AlibcTradeSDK.setChannel(String typeName, String channelName)
<br />
设置ISV code
/**
* 设置isvCode
* 注意:初始化完成后调用才能生效
*
* @param isvCode
* @return 返回isv code是否设置成功
*/
AlibcTradeSDK.setISVCode(String isvCode)
<br />
设置ISV 版本
/**
* 设置isv的版本 ,通常为三方app版本,可以不进行设置;默认1.0.0
* 注意:初始化完成后调用才能生效
*
* @param isvVersion
* @return 返回isv version是否设置成功
*/
AlibcTradeSDK.setISVVersion(String isvVersion)
<br />
3.1版本主要变化
<br />
主要接口变化
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() {
@Override
sult 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代理方式;优化百川模块耦合;