百川电商SDK3.1接入文档-Android

更新时间:2019/01/24 访问次数:78825

1 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.taobao.android:alibc_applink:2.0.0.9@jar'

    //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_sdk:3.1.1.11@aar'

}

```

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>20160819</version>
        <type>jar</type>
    </dependency>
    
    <!--登陆-->
    <dependency>
        <groupId>com.ali.auth.sdk</groupId>
        <artifactId>alibabauth_core</artifactId>
        <version>1.0.9.7</version>
        <type>jar</type>
    </dependency>
    
    <dependency>
        <groupId>com.ali.auth.sdk</groupId>
        <artifactId>alibabauth_ui</artifactId>
        <version>1.0.9.7</version>
        <type>aar</type>
    </dependency>
    
    <dependency>
        <groupId>com.ali.auth.sdk</groupId>
        <artifactId>alibabauth_ext</artifactId>
        <version>1.0.9.7</version>
        <type>jar</type>
    </dependency>
    
    //【可选】仅供特殊合作伙伴使用
    <dependency>
        <groupId>com.ali.auth.sdk</groupId>
        <artifactId>alibabauth_accountlink</artifactId>
        <version>1.0.9.7</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.20</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_applink</artifactId>
        <type>jar</type>
        <version>2.0.0.2</version>
    </dependency>
    
    <!--UT-->
    <dependency>
        <groupId>com.taobao.android</groupId>
        <artifactId>utdid4all</artifactId>
        <version>1.1.5</version>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba.mtl</groupId>
        <artifactId>app-monitor-sdk</artifactId>
        <version>2.5.1_for_bc</version>
        <type>aar</type>
    </dependency>
    
    <!--电商SDK-->
    <dependency>
        <groupId>com.alibaba.sdk.android</groupId>
        <artifactId>alibc_trade_sdk</artifactId>
        <version>3.1.0.7</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_applink-2.0.0.9', 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: 'jar')

    //电商SDK
    compile(name: 'alibc_trade_sdk-3.1.1.11', 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.**  {*;}

2 快速入门


初始化

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判断失败原因,详情参见错误说明
                }
            }); 
        }
    }

电商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);
   
    //实例化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(TradeResult 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(TradeResult 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(TradeResult 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(TradeResult 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) 
    }

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 登录组件


登录

public void login(View view) {

        final AlibcLogin alibcLogin = AlibcLogin.getInstance();

        alibcLogin.showLogin(MainActivity.this, new AlibcLoginCallback() {

            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "登录成功 ",
                        Toast.LENGTH_LONG).show();
                //获取淘宝用户信息
               Log.i(TAG, "获取淘宝用户信息: "+AlibcLogin.getInstance().getSession());

            }
            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "登录失败 ",
                        Toast.LENGTH_LONG).show();
            }
        });
    }

退出登录

public void logout(View view) {

        AlibcLogin alibcLogin = AlibcLogin.getInstance();

        alibcLogin.logout(MainActivity.this, new LogoutCallback() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "退出登录成功",
                        Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "退出登录失败 " + code + msg,
                        Toast.LENGTH_SHORT).show();
            }
        });
    }

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() {
    @Override
    public void onTradeSuccess(AliTradeResult 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

FAQ

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