百川電商SDK3.1.1.99接入文檔-Android
Android SDK 集成
<br />
Gradle接入方式(3.1+ 版本支持)
1伞插, 獲得安全圖片(圖片獲取方式見接入準(zhǔn)備文檔)券盅,并放在/res/drawable目錄下飘诗,如果已經(jīng)有安全圖片持搜,需要替換狞甚。
2等曼, 老用戶升級裂允,請先刪除原來的所有jar & aar依賴损离,包括alisdk-kernel, alisdk-kernel-base, alisdk-login, alisdk-rpc, alisdk-security, alisdk-system, alisdk-ui, nbsdk-trade等哥艇。
3绝编, Gradle配置
在整個項(xiàng)目的gradle基礎(chǔ)配置文件中加入倉庫地址
allprojects {
repositories {
jcenter()
maven {
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
}
}
}
在項(xiàng)目module的gradle文件中加入相關(guān)依賴
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'
//安全基礎(chǔ)
compile 'com.taobao.android:securityguardaar3:5.1.81@aar'
//【可選】安全高級,如使用了發(fā)放紅包貌踏、優(yōu)惠券高級功能十饥,則必須引入
compile 'com.taobao.android:securitybodyaar3:5.1.25@aar'
//Mtop網(wǎng)關(guān)
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, 獲得安全圖片(圖片獲取方式見接入準(zhǔn)備文檔)祖乳,并放在/res/drawable目錄下逗堵,如果已經(jīng)有安全圖片,需要替換眷昆。
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>
<!--安全基礎(chǔ)-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>securityguardaar3</artifactId>
<version>5.1.81</version>
<type>aar</type>
</dependency>
<!--【可選】安全高級帅刊,如使用了發(fā)放紅包纸泡、優(yōu)惠券高級功能,則必須引入-->
<dependency>
<groupId>com.taobao.android</groupId>
<artifactId>securitybodyaar3</artifactId>
<version>5.1.25</version>
<type>aar</type>
</dependency>
<!--網(wǎng)關(guān)-->
<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赖瞒, 獲得安全圖片(圖片獲取方式見接入準(zhǔn)備文檔)女揭,并放在/res/drawable目錄下,如果已經(jīng)有安全圖片栏饮,需要替換吧兔。
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涮帘,導(dǎo)入工程。
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')
//安全基礎(chǔ)
compile(name: 'securityguardaar3-5.1.81', ext: 'aar')
//【可選】安全高級疮鲫,如使用了發(fā)放紅包、優(yōu)惠券高級功能弦叶,則必須引入
compile(name: 'securitybodyaar3-5.1.25', ext: 'aar')
//Mtop網(wǎng)關(guān)
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 規(guī)則
-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導(dǎo)入后俊犯,即可在代碼中使用百川相關(guān)組件,在使用具體功能前需要在應(yīng)用的入口方法(Application的onCreate)中初始化百川SDK
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {
@Override
public void onSuccess() {
//初始化成功伤哺,設(shè)置相關(guān)的全局配置參數(shù)
// ...
}
@Override
public void onFailure(int code, String msg) {
//初始化失敗燕侠,可以根據(jù)code和msg判斷失敗原因,詳情參見錯誤說明
}
});
}
}
<br />
資源銷毀
在使用完成后立莉,可以調(diào)用destroy方法绢彤,釋放百川相應(yīng)的資源引用
AlibcTradeSDK.destroy();
<br />
電商API使用
初始化完成后,就可以使用百川提供的功能組件蜓耻,通過調(diào)用AlibcTrade的show方法茫舶,傳入相應(yīng)的page(page詳情,參考下面API詳細(xì)說明)刹淌,來完成調(diào)用饶氏。
//提供給三方傳遞配置參數(shù)
Map<String, String> exParams = new HashMap<>();
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
//商品詳情page
AlibcBasePage detailPage = new AlibcDetailPage(itemId);
//實(shí)例化店鋪打開page
AlibcBasePage shopPage = new AlibcShopPage(shopId);
//實(shí)例化添加購物車打開page
AlibcBasePage addCardPage = new AlibcAddCartPage(itemId)
//實(shí)例化我的訂單打開page
AlibcBasePage ordersPage = new AlibcMyOrdersPage(status, allOrder);
//實(shí)例化我的購物車打開page
AlibcBasePage myCartsPage = new AlibcMyCartsPage();
//實(shí)例化URL打開page
AlibcBasePage page = new AlibcPage(taokeUrl);
//設(shè)置頁面打開方式
AlibcShowParams showParams = new AlibcShowParams(OpenType.Native, false);
//使用百川sdk提供默認(rèn)的Activity打開detail
AlibcTrade.show(context, detailPage, showParams, null, exParams ,
new AlibcTradeCallback() {
@Override
public void onTradeSuccess(AlibcTradeResult tradeResult) {
//打開電商組件,用戶操作中成功信息回調(diào)有勾。tradeResult:成功信息(結(jié)果類型:加購疹启,支付;支付結(jié)果)
}
@Override
public void onFailure(int code, String msg) {
//打開電商組件柠衅,用戶操作中錯誤信息回調(diào)皮仁。code:錯誤碼;msg:錯誤信息
}
});
/使用自己的Activity & webview打開detail
AlibcTrade.show(context, webView, webViewClient, webChromeClien, tdetailPage, showParams, null, exParams ,
new AlibcTradeCallback() {
@Override
public void onTradeSuccess(AlibcTradeResult tradeResult) {
//打開電商組件菲宴,用戶操作中成功信息回調(diào)贷祈。tradeResult:成功信息(結(jié)果類型:加購,支付喝峦;支付結(jié)果)
}
@Override
public void onFailure(int code, String msg) {
//打開電商組件势誊,用戶操作中錯誤信息回調(diào)。code:錯誤碼谣蠢;msg:錯誤信息
}
});
<br />
API 說明
<br />
初始化SDK
初始化百川電商相關(guān)組件粟耻,該方法異步執(zhí)行,使用百川電商相關(guān)功能前眉踱,必須調(diào)用初始化挤忙。
/**
* 百川電商SDK初始化【異步】
*
* @param context 建議設(shè)置Application(必填)
* @param initResultCallback 初始化狀態(tài)信息回調(diào)(可以為null)
*/
AlibcTradeSDK.asyncInit(Context context, AlibcTradeInitCallback initResultCallback)
<br />
調(diào)用電商組件
1. 外部傳入webview方式打開電商組件
<font color=#ff0000>
[注意]:當(dāng)傳入webviewClient,并重載shouldOverrideUrlLoading方法時谈喳,遇到淘系鏈接情況下(即訪問淘寶册烈、天貓、登錄婿禽、購物車等頁面時)赏僧,該方法返回值要為false大猛,否則可能會出現(xiàn)業(yè)務(wù)流程錯誤問題。</font>
/**
* 打開電商組件,支持使用外部webview
*
* @param activity 必填
* @param webView 外部 webView
* @param webViewClient webview的webViewClient
* @param webChromeClient webChromeClient客戶端
* @param tradePage 頁面類型,必填淀零,不可為null挽绩,詳情見下面tradePage類型介紹
* @param showParams show參數(shù)
* @param taokeParams 淘客參數(shù)
* @param trackParam yhhpass參數(shù)
* @param tradeProcessCallback 交易流程的回調(diào),必填驾中,不允許為null唉堪;
* @return 0標(biāo)識跳轉(zhuǎn)到手淘打開了,1標(biāo)識用h5打開,-1標(biāo)識出錯
*/
AlibcTrade.show(activity, webView, webViewClient, webChromeClient, tradePage, showParams, taokeParams, trackParam, new AlibcTradeCallback() {
@Override
public void onTradeSuccess(AlibcTradeResult tradeResult) {
//打開電商組件,用戶操作中成功信息回調(diào)哀卫。tradeResult:成功信息(結(jié)果類型:加購巨坊,支付撬槽;支付結(jié)果)
}
@Override
public void onFailure(int code, String msg) {
//打開電商組件此改,用戶操作中錯誤信息回調(diào)。code:錯誤碼侄柔;msg:錯誤信息
}
});
<br />
2. 提供默認(rèn)的webview打開電商組件
/**
* 打開電商組件, 使用默認(rèn)的webview打開
*
* @param activity 必填
* @param tradePage 頁面類型,必填共啃,不可為null,詳情見下面tradePage類型介紹
* @param showParams show參數(shù)
* @param taokeParams 淘客參數(shù)
* @param trackParam yhhpass參數(shù)
* @param tradeProcessCallback 交易流程的回調(diào)暂题,必填移剪,不允許為null;
* @return 0標(biāo)識跳轉(zhuǎn)到手淘打開了,1標(biāo)識用h5打開,-1標(biāo)識出錯
*/
AlibcTrade.show(activity, tradePage, showParams, taokeParams, trackParam, new AlibcTradeCallback() {
@Override
public void onTradeSuccess(AlibcTradeResult tradeResult) {
//打開電商組件薪者,用戶操作中成功信息回調(diào)纵苛。tradeResult:成功信息(結(jié)果類型:加購,支付言津;支付結(jié)果)
}
@Override
public void onFailure(int code, String msg) {
//打開電商組件攻人,用戶操作中錯誤信息回調(diào)。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 默認(rèn)跳轉(zhuǎn)頁面访雪;填寫:0:全部详瑞;1:待付款掂林;2:待發(fā)貨;3:待收貨坝橡;4:待評價(jià)
* @param allOrder false 進(jìn)行訂單分域(只展示通過當(dāng)前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相關(guān)資源
/**
* 銷毀電商SDK相關(guān)資源引用,防止內(nèi)存泄露
*/
AlibcTradeSDK.destory()
<br />
設(shè)置SDK API調(diào)用默認(rèn)方式
/**
* 是否走強(qiáng)制H5的邏輯计寇。false:按照默認(rèn)規(guī)則策略打開頁面锣杂;true:全部頁面均為H5打開;
* 注意:初始化完成后調(diào)用才能生效
*
* @param isforceH5 (默認(rèn)為false)
* @return 返回打開策略是否設(shè)置成功
*/
AlibcTradeSDK.setForceH5(boolean isforceH5)
<br />
設(shè)置SDK 淘客打點(diǎn)策略
/**
* 設(shè)置是否使用同步淘客打點(diǎn)。true:使用淘客同步打點(diǎn)番宁;false:關(guān)閉同步打點(diǎn)元莫,使用異步打點(diǎn);
* 注意:初始化完成后調(diào)用才能生效蝶押;在加購場景下踱蠢,只有異步淘客打點(diǎn)
*
* @param isSyncForTaoke(默認(rèn)為true)
* @return 返回同步淘客打點(diǎn)策略是否設(shè)置成功
*/
AlibcTradeSDK.setSyncForTaoke(boolean isSyncForTaoke)
<br />
設(shè)置淘客全局參數(shù)
/**
* 設(shè)置全局淘客參數(shù),方便開發(fā)者用同一個淘客參數(shù)棋电,不需要在show接口重復(fù)傳入
* 注意:初始化完成后調(diào)用才能生效
*
* @param taokeParams 淘客參數(shù)
*/
AlibcTradeSDK.setTaokeParams(AlibcTaokeParams taokeParams)
<br />
設(shè)置渠道信息
/**
* 設(shè)置渠道信息(如果有渠道專享價(jià)茎截,需要設(shè)置)
* 注意:初始化完成后調(diào)用才能生效
*
* @param typeName : 渠道類型(默認(rèn)為:0)
* @param channelName : 渠道名稱(默認(rèn)為:null)
*/
AlibcTradeSDK.setChannel(String typeName, String channelName)
<br />
設(shè)置ISV code
/**
* 設(shè)置isvCode
* 注意:初始化完成后調(diào)用才能生效
*
* @param isvCode
* @return 返回isv code是否設(shè)置成功
*/
AlibcTradeSDK.setISVCode(String isvCode)
<br />
設(shè)置ISV 版本
/**
* 設(shè)置isv的版本 ,通常為三方app版本赶盔,可以不進(jìn)行設(shè)置企锌;默認(rèn)1.0.0
* 注意:初始化完成后調(diào)用才能生效
*
* @param isvVersion
* @return 返回isv version是否設(shè)置成功
*/
AlibcTradeSDK.setISVVersion(String isvVersion)
<br />
3.1版本主要變化
<br />
主要接口變化
1. 初始化用戶不用再傳入app key
2. 使用電商SDK,打開detail于未,shop等功能撕攒,接口調(diào)用方式升級
//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柳击;
優(yōu)化淘客流程;優(yōu)化WebView代理方式片习;優(yōu)化百川模塊耦合捌肴;