在客户端集成百川SDK之前,需要完成以下准备工作:
1. 入驻百川,创建应用,点击这里入驻。
2. 下载客户端SDK,查看下载流程。
「安全图片」是百川SDK安全机制的一部分,安全图片位于下载的SDK包中,**为了是SDK正常工作,需要开发者确保正确的使用安全图片**。需要注意以下几点:
res/drawable
目录中,如果通过模块依赖的方式集成SDK,不需要移动该文件。根据工程所使用的IDE/构建工具可以选择如下导入方式:
通过属性中的依赖lib工程添加客户端SDK,如图所示:
然后将SDK的AndroidManifest.xml中的内容合并到项目中,可以直接复制,也可以修改project.properties文件的manifestmerger.enabled为true。
在工程的settings.gradle
添加module:
include ':OneSDK'
然后在应用module的build.gradle
中dependencies
添加如下语句:
compile project(':OneSDK')
最后重新编译/构建项目确保模块导入完成。
也可以通过直接复制SDK包中的文件方式来使用SDK,只需要复制**所有相关的文件(包括安全图片)**到工程中的相应目录,并合并AndroidManifest.xml文件内容。
虽然简单有效,但这种方式不利于工程维护,不推荐使用。
接下来,开发者就能在代码中使用百川SDK了。
如果开发者开启了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导入后,即可在代码中使用百川相关组件,在使用具体功能前需要在应用的入口方法(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); }
用户可以在购物车进行下单,完成后续的交易流程。