集成客户端SDK-Android

更新时间:2016/06/29 访问次数:42957

准备工作

在客户端集成百川SDK之前,需要完成以下准备工作:
1. 入驻百川,创建应用,点击这里入驻
2. 下载客户端SDK,查看下载流程

安全图片

「安全图片」是百川SDK安全机制的一部分,安全图片位于下载的SDK包中,**为了是SDK正常工作,需要开发者确保正确的使用安全图片**。需要注意以下几点:

  • 安全图片的文件名为「yw_1222.jpg」,**请勿修改**。
  • 安全图片位于res/drawable目录中,如果通过模块依赖的方式集成SDK,不需要移动该文件。
  • 如果开发者是通过复制文件的方式集成SDK,请务必确保安全图片位于工程中的’res/drawable’目录。
  • 安全图片与开发者编译构建APK所用的keystore对应,如果修改了keystore(比如从debug切换为正式的keystore),则需要替换成对应的安全图片。

导入SDK

根据工程所使用的IDE/构建工具可以选择如下导入方式:

Eclipse

通过属性中的依赖lib工程添加客户端SDK,如图所示:
import
然后将SDK的AndroidManifest.xml中的内容合并到项目中,可以直接复制,也可以修改project.properties文件的manifestmerger.enabled为true。

Android Studio

在工程的settings.gradle添加module:

include ':OneSDK'

然后在应用module的build.gradledependencies添加如下语句:

compile project(':OneSDK')

最后重新编译/构建项目确保模块导入完成。

复制文件的方式

也可以通过直接复制SDK包中的文件方式来使用SDK,只需要复制**所有相关的文件(包括安全图片)**到工程中的相应目录,并合并AndroidManifest.xml文件内容。
虽然简单有效,但这种方式不利于工程维护,不推荐使用。

接下来,开发者就能在代码中使用百川SDK了。

Proguard规则

如果开发者开启了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.**

初始化SDK

SDK导入后,即可在代码中使用百川相关组件,在使用具体功能前需要在应用的入口方法(Application的onCreate)中初始化百川SDK:

public class DemoApplication extends Application {
	@Override
	public void onCreate() {
		super.onCreate();

		AlibabaSDK.asyncInit(this, new InitResultCallback() {
	
				@Override
				public void onSuccess() {
					Toast.makeText(TAEApplication.this, "TaeSDK 初始化成功", Toast.LENGTH_SHORT)
					.show();
				}
	
				@Override
				public void onFailure(int code, String message) {
					Log.w("mayongge", "初始化异常,code = " + code + ", info = " + message);
				}
	
		});
	}
}

通过接收回调判断百川SDK初始化是否成功。

快速入门

初始化完成后,就可以使用百川提供的功能组件,使用的方式都是通过AlibabaSDK类的getService方法获取相关的服务组件,例如LoginService(登陆)/CartService(购物车)等。

登录授权

可以调用登陆借口实现通过淘宝账号进行授权的业务逻辑:

public void showLogin(View view) {
    LoginService loginService = AlibabaSDK.getService(LoginService.class);
    loginService.showLogin(MainActivity.this, new LoginCallback() {
 
        @Override
        public void onSuccess(Session session) {
            Toast.makeText(MainActivity.this, "欢迎"+session.getUser().nick+session.getUser().avatarUrl,
                    Toast.LENGTH_SHORT).show();
        }
 
        @Override
        public void onFailure(int code, String message) {
            Toast.makeText(MainActivity.this, "授权取消"+code+message,
                    Toast.LENGTH_SHORT).show();
        }
    });
}

打开商品详情

用户可以通过导购页面(比如推荐商品列表等),打开商品的详情页面,开始交易过程:

public void showItemDetailPage(View view){
    TradeService tradeService = AlibabaSDK.getService(TradeService.class);
//ItemDetailPage(String itemId,  Map<String, String> exParams)
//itemId  商品id.支持标准的商品id,eg.37196464781;同时支持openItemId,eg.AAHd5d-HAAeGwJedwSnHktBI;必填,不允许为null;
//exParams 特殊业务扩展字段;选填,允许为null;目前支持3个参数:
//    1、TradeConstants.ITEM_DETAIL_VIEW_TYPE:启动页面类型,分为TAOBAO_H5_VIEW(以淘宝H5方式打开详情页)、TAOBAO_NATIVE_VIEW(唤起手机淘宝客户端打开详情页)。
//  2、TradeConstants.ISV_CODE(ISV_CODE用法可参看:http://baichuan.taobao.com/doc2/detail.htm?treeId=30&articleId=102596&docType=1) 
//  3、TradeConstants. TAOBAO_BACK_URL:设置启动手淘native页面后的返回页面
   
 ItemDetailPage itemDetailPage = new ItemDetailPage("xxxxxx_xx", null);

    TaokeParams taokeParams = new TaokeParams(); //若非淘客taokeParams设置为null即可
    taokeParams.pid = "xxxxxx_xxxx_xxx";
    tradeService.show(itemDetailPage, taokeParams, MainActivity.this, null, new TradeProcessCallback(){
 
        @Override
        public void onFailure(int code, String msg) {
            Toast.makeText(MainActivity.this, "失败 "+code+msg,
                    Toast.LENGTH_SHORT).show();
             
        }
 
        @Override
        public void onPaySuccess(TradeResult tradeResult) {
            Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                    .show();
             
        }});
}

添加商品到购物车

开发者也可以直接把相应的产品添加到用的购物车:

public void addItem2Cart(View view) {
            CartService cartService = AlibabaSDK.getService(CartService.class);
    cartService.addItem2Cart(this, new TradeProcessCallback() {
 
        @Override
        public void onPaySuccess(TradeResult tradeResult) {
            Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT)
                    .show();
 
        }
 
        @Override
        public void onFailure(int code, String msg) {
            if (code == ResultCode.QUERY_ORDER_RESULT_EXCEPTION.code) {
                Toast.makeText(MainActivity.this, "确认交易订单失败",
                            Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this, "交易取消 "+code+msg,
                        Toast.LENGTH_SHORT).show();
            }
        }
    }, "加入购物车", openId, null);
}

用户可以在购物车进行下单,完成后续的交易流程。

更多

FAQ

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