美文网首页
无标题文章

无标题文章

作者: 陈明浩 | 来源:发表于2017-07-13 13:04 被阅读103次

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

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/zgnrnttx.html