无标题文章

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • # 百川电商SDK3.1.1.99接入文档-Android## Android SDK 集成 #### Gradl...
    一亩不到三分阅读 1,054评论 0 0
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 1,580评论 0 3
  • (英文材料来源于美国之音VOA,译文为作者原创。欢迎各位读者朋友交流指正。) Computer coding wa...
    云城不羁客阅读 553评论 0 4
  • 星期三。雨。 戴上眼镜看自己,真是丑。双眼无神,脸色暗淡,满脸痘痘,痘印,还很肥。我真是需要一个人,来指导我,由内...
    紅蜻蜓阅读 212评论 0 0
  • 无标题文章
    sir21阅读 171评论 8 0