taobao

来自于:开发者

asyncInit showLogin getUserInfo showMyOrdersPage showMyCartsPage showItemDetailPage showPageByUrl showShopPage logout 错误码 打测试包详解 打正式包接入详解 常见问题

使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:taobao
  • 参数:urlScheme
  • 说明:urlScheme的值为tbopen+appkey, appkey是在阿里百川的平台上可以找到 [taobao - 图1]
  • 参数:querySchemes
  • 说明:urlScheme的值为tbopen,tmall,保证ios版可以拉起手淘
  • 配置示例:
  1. <feature name="taobao">
  2. <param name="urlScheme" value="tbopen23409820"/>
  3. <preference name="querySchemes" value="tbopen,tmall"/>
  4. </feature>

概述

淘宝联盟隶属于阿里巴巴集团旗下,国内最大的购物搜索一淘,于2010年4月8日正式成立,依托阿里巴巴集团强大的品牌号召力和淘宝联盟人的不懈努力,淘宝联盟汇聚了大量电子商务营销效果数据和经验,已经发展成为国内最大最专业的电子商务营销联盟。通过本模块可以轻松实现APP内淘宝交易闭环,帮助你利用自己的APP实现流量变现。本模块实现淘宝交易闭环所有功能:手淘授权登陆、退出登陆、获取登录者的信息、打开购物车、打开我的订单、通过itemid打开宝贝详情、通过链接打开宝贝详情等。

不能同时编译的模块:beecloud, aliPay, pingpp, alibaichuan

交易流程: taobao - 图2


什么是安全图片

百川平台将从上传的包内提取签名,包名等信息,并加密存储到安全图片。SDK 启动时会校验当前 apk 和图片中的签名信息,以避免发布的安装包被恶意篡改。另外,请注意如下事项: 1)因为只提取安装包的签名以及包名信息,所以上传时对安装包的内容没有任何要求。 2)请确保后续开发中用于 apk 签名的 keystore 和上传 apk 所使用的保持一致。 3)如开发过程中或最终发布应用时需要切换其他 keystore,请上传使用新 keystore 签名的 apk 重新获取安全图片,并替换掉当前开发工程中相同位置的同名文件。更多详情请查看打正式包接入详解

使用须知

安全图片是使用应用的相关信息(android需要提供appkey、keystore签名的apk文件,IOS需要提供BundleID)一起加密生成的1像素点的加密图片。 调用时,android客户端SDK会校验安全图片中加密的keystore和当前程序中的keystore是否一致,如果不一致初始化会失败;IOS客户端SDK会校验安全图片中加密的BundleID和当前程序中的BundleID是否一致,如果不一致初始化会失败。

打测试包详解

Android:

首先需要查看你的应用是否已经创建安卓证书,前去查看。下图所示则说明没有生成证书。taobao - 图3

IOS:

首先需要查看你的应用是否已经创建IOS证书,前去查看。下图所示则说明没有生成证书。taobao - 图4

若应用没有创建证书可以直接使用我们提供的安全图片模块

首先下载图片安全模块

Android:

下载后得到android文件夹中的taobaokey.zip,将taobaokey.zip上传到APICloud的自定义模块中(见下图)。taobaokey模块创建好后,加入到应用中。然后再引入taobao模块就可以调用模块内方法了。taobao - 图5

IOS:

下载后得到ios文件夹中的taobaokey.zip,将taobaokey.zip上传到APICloud的自定义模块中(见下图)。taobaokey模块创建好后,加入到应用中。然后再引入taobao模块就可以调用模块内方法了。taobao - 图6

注:一个账户,多个应用使用taobao 模块,需要多次上传taobaokey 自定义模块的问题。下载得到taobaokey.zip解压后,重命名例如taobaokey1,里面的文件夹res_taobaokey1,来引入不同的安全图片。

若应用已创建证书则需要查看打正式包接入详解

方法介绍

asyncInit

调用其他接口前需先调用该接口注册,只需调用一次。

asyncInit(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.asyncInit(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

showLogin

打开淘宝授权登陆

  • 效果图(手机安装淘宝):taobao - 图7

showLogin(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. userNick:"tian**" //用户昵称
  5. avatarUrl:"http://..." //用户头像
  6. openId:""
  7. openSid:""
  8. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.showLogin(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

getUserInfo

获取已登录用户的相关信息

getUserInfo(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. userNick:"tian**" //用户昵称
  5. avatarUrl:"http://..." //用户头像
  6. openId:""
  7. openSid:""
  8. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.getUserInfo(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

showMyOrdersPage

打开我的订单

  • 效果图:taobao - 图8

showMyOrdersPage(param, callback(ret, err))

params

type:

  • 类型:int
  • 描述:(可选项)默认跳转页面。
  • 默认值:0
  • 取值范围:
    • 0:全部;1:待付款;2:待发货;3:待收货;4:待评价。若传入 的不是这几个数字,则跳转到“全部”

allOrder:

  • 类型:boolean
  • 描述:(可选项)显示全部订单。
  • 默认值:true
  • 取值范围:
    • true:显示全部订单;false:不显示全部订单;

pid:

  • 类型:string
  • 描述:(可选项)阿里妈妈淘客PID。

isUseNative:

  • 类型:bool
  • 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.showMyOrdersPage(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

showMyCartsPage

打开我的购物车

  • 效果图:taobao - 图9

showMyCartsPage(param, callback(ret, err))

param

isv_code:

  • 类型:string
  • 默认值:无
  • 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)

pid:

  • 类型:string
  • 描述:(可选项)阿里妈妈淘客PID。

isUseNative:

  • 类型:bool
  • 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。

    callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.showMyCartsPage(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的2.0.0版本

showItemDetailPage

根据itemId打开商品详情

  • 效果图:taobao - 图10

showItemDetailPage(param, callback(ret, err))

param

itemId:

  • 类型:string
  • 示例值:527499129604
  • 描述:(必填项)商品itemId。

isv_code:

  • 类型:string
  • 默认值:无
  • 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)

pid:

  • 类型:string
  • 描述:(可选项)阿里妈妈淘客PID。

isUseNative

  • 类型:bool
  • 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. var param = {itemId:'527499129604'};
  3. taobao.showItemDetailPage(param, function(ret, err){
  4. if(ret){
  5. alert(JSON.stringify(ret));
  6. }
  7. else{
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

showPageByUrl

根据url打开商品详情

  • 效果图:taobao - 图11

showPageByUrl(param, callback(ret, err))

param

url:

  • 类型:string
  • 描述:(必填项)商品url。

isv_code:

  • 类型:string
  • 默认值:无
  • 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)

pid:

  • 类型:string
  • 描述:(可选项)阿里妈妈淘客PID。

isUseNative

  • 类型:bool
  • 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. var param = {url:'http://h5.m.taobao.com/awp/core/detail.htm?id=37894235018'};
  3. taobao.showPageByUrl(param, function(ret, err){
  4. if(ret){
  5. alert(JSON.stringify(ret));
  6. }
  7. else{
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

showShopPage

根据店铺id打开店铺页面

  • 效果图:

showShopPage(param, callback(ret, err))

param

shopId:

  • 类型:string
  • 描述:(必填项)店铺id。

isv_code:

  • 类型:string
  • 默认值:无
  • 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)

pid:

  • 类型:string
  • 描述:(可选项)阿里妈妈淘客PID。

isUseNative

  • 类型:bool
  • 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. var param = {shopId:'63326917'};
  3. taobao.showPageByUrl(param, function(ret, err){
  4. if(ret){
  5. alert(JSON.stringify(ret));
  6. }
  7. else{
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

Android系统,IOS系统

可提供的3.0.0及更高版本

logout

登出

logout(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: "请求成功!" //字符型;返回请求成功信息
  3. code: 1 //整数型;返回请求成功代码
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg //请求失败原因描述
  3. code //请求失败代码
  4. }

示例代码

  1. var taobao = api.require('taobao');
  2. taobao.logout(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. else{
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

Android系统,IOS系统

可提供的1.0.0及更高版本

错误码

  1. 1000 请求成功!
  2. 1001 尚未初始化,请先调用asyncInit方法!
  3. 1002 参数异常请检查修改后再试!
  4. 其他,请查看阿里的错误提示

打正式包接入详解

  1. 登陆阿里百川:阿里百川 taobao - 图12
  2. 未开通淘宝账户,需开通账户taobao - 图13
  3. 进入控制台taobao - 图14
  4. 选择应用管理中的创建应用,输入应用名词,选择类型后创建应用taobao - 图15
  5. 应用创建成功后,在API申请中申请开通初级电商能力和无线开发百川淘客包权限taobao - 图16
  6. 安卓应用在APICloud中,云编译生成正式包,下载安装包。taobao - 图17IOS应用在APICloud中查看BundleIDtaobao - 图18
  7. 安卓应用在安全图片获取中上传你上一步下载的安装包,然后点击下载安全图片。得到安全图片yw_1222.jpg。taobao - 图19 IOS应用在安全图片获取中输入上一步查到的BundleID,然后点击下载安全图片。得到安全图片yw_1222.jpg。taobao - 图20
  8. 下载图片安全模块
  9. 下载后得到taobaokey.zip,安卓应用解压后用上一步中得到的安全图片yw_1222.jpg替换解压后taobaokey\android\taobaokey\res_taobaokey\res\drawable路径下的yw_1222.jpg,然后重新压缩文件夹得到新的taobaokey.zip,上传至APICloud自定义模块;IOS应用解压后用上一步中得到的安全图片yw_1222.jpg替换解压后taobaokey\ios\taobaokey\target路径下的yw_1222.jpg,然后重新压缩文件夹得到新的taobaokey.zip,上传至APICloud自定义模块。
  10. 引入taobao模块就可以调用模块内方法了。

常见问题

1、模块接入过程中常见问题可查看 问题详解 另外安卓模块更新后授权登录可能会出现“系统繁忙,请稍后再试”的提示 ,可以看问题详解 第七条。而且升级SDK后要在控制台重新生成新的安全图片。