- taobao
- 概述
- 什么是安全图片
- 使用须知
- 打测试包详解
- 若应用没有创建证书可以直接使用我们提供的安全图片模块
- 若应用已创建证书则需要查看打正式包接入详解
- 方法介绍
- asyncInit
- callback(ret, err)
- 示例代码
- 可用性
- showLogin
- callback(ret, err)
- 示例代码
- 可用性
- getUserInfo
- callback(ret, err)
- 示例代码
- 可用性
- showMyOrdersPage
- params
- callback(ret, err)
- 示例代码
- 可用性
- showMyCartsPage
- param
- callback(ret, err)
- 示例代码
- 可用性
- showItemDetailPage
- param
- callback(ret, err)
- 示例代码
- 可用性
- showPageByUrl
- param
- callback(ret, err)
- 示例代码
- 可用性
- showShopPage
- param
- callback(ret, err)
- 示例代码
- 可用性
- logout
- callback(ret, err)
- 示例代码
- 可用性
- 错误码
- 打正式包接入详解
- 常见问题
taobao
来自于:开发者
asyncInit showLogin getUserInfo showMyOrdersPage showMyCartsPage showItemDetailPage showPageByUrl showShopPage logout 错误码 打测试包详解 打正式包接入详解 常见问题
使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:
- 名称:taobao
- 参数:urlScheme
- 说明:urlScheme的值为tbopen+appkey, appkey是在阿里百川的平台上可以找到 []
- 参数:querySchemes
- 说明:urlScheme的值为tbopen,tmall,保证ios版可以拉起手淘
- 配置示例:
<feature name="taobao">
<param name="urlScheme" value="tbopen23409820"/>
<preference name="querySchemes" value="tbopen,tmall"/>
</feature>
概述
淘宝联盟隶属于阿里巴巴集团旗下,国内最大的购物搜索一淘,于2010年4月8日正式成立,依托阿里巴巴集团强大的品牌号召力和淘宝联盟人的不懈努力,淘宝联盟汇聚了大量电子商务营销效果数据和经验,已经发展成为国内最大最专业的电子商务营销联盟。通过本模块可以轻松实现APP内淘宝交易闭环,帮助你利用自己的APP实现流量变现。本模块实现淘宝交易闭环所有功能:手淘授权登陆、退出登陆、获取登录者的信息、打开购物车、打开我的订单、通过itemid打开宝贝详情、通过链接打开宝贝详情等。
不能同时编译的模块:beecloud, aliPay, pingpp, alibaichuan
交易流程:
什么是安全图片
百川平台将从上传的包内提取签名,包名等信息,并加密存储到安全图片。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:
首先需要查看你的应用是否已经创建安卓证书,前去查看。下图所示则说明没有生成证书。
IOS:
首先需要查看你的应用是否已经创建IOS证书,前去查看。下图所示则说明没有生成证书。
若应用没有创建证书可以直接使用我们提供的安全图片模块
首先下载图片安全模块。
Android:
下载后得到android文件夹中的taobaokey.zip,将taobaokey.zip上传到APICloud的自定义模块中(见下图)。taobaokey模块创建好后,加入到应用中。然后再引入taobao模块就可以调用模块内方法了。
IOS:
下载后得到ios文件夹中的taobaokey.zip,将taobaokey.zip上传到APICloud的自定义模块中(见下图)。taobaokey模块创建好后,加入到应用中。然后再引入taobao模块就可以调用模块内方法了。
注:一个账户,多个应用使用taobao 模块,需要多次上传taobaokey 自定义模块的问题。下载得到taobaokey.zip解压后,重命名例如taobaokey1,里面的文件夹res_taobaokey1,来引入不同的安全图片。
若应用已创建证书则需要查看打正式包接入详解
方法介绍
asyncInit
调用其他接口前需先调用该接口注册,只需调用一次。
asyncInit(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.asyncInit(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
showLogin
打开淘宝授权登陆
- 效果图(手机安装淘宝):
showLogin(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
userNick:"tian**" //用户昵称
avatarUrl:"http://..." //用户头像
openId:""
openSid:""
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.showLogin(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
getUserInfo
获取已登录用户的相关信息
getUserInfo(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
userNick:"tian**" //用户昵称
avatarUrl:"http://..." //用户头像
openId:""
openSid:""
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.getUserInfo(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
showMyOrdersPage
打开我的订单
- 效果图:
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对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.showMyOrdersPage(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
showMyCartsPage
打开我的购物车
- 效果图:
showMyCartsPage(param, callback(ret, err))
param
isv_code:
- 类型:string
- 默认值:无
- 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)
pid:
- 类型:string
- 描述:(可选项)阿里妈妈淘客PID。
isUseNative:
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.showMyCartsPage(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的2.0.0版本
showItemDetailPage
根据itemId打开商品详情
- 效果图:
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对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
var param = {itemId:'527499129604'};
taobao.showItemDetailPage(param, function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
showPageByUrl
根据url打开商品详情
- 效果图:
showPageByUrl(param, callback(ret, err))
param
url:
- 类型:string
- 描述:(必填项)商品url。
isv_code:
- 类型:string
- 默认值:无
- 描述:(可选项)自定义ISVCode,用于服务器订单跟踪。(如果服务器不做处理,可以随便传)
pid:
- 类型:string
- 描述:(可选项)阿里妈妈淘客PID。
isUseNative
- 类型:bool
- 描述:(可选项)是否拉起手淘打开页面,默认false不拉起手淘。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
var param = {url:'http://h5.m.taobao.com/awp/core/detail.htm?id=37894235018'};
taobao.showPageByUrl(param, function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
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对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
var param = {shopId:'63326917'};
taobao.showPageByUrl(param, function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的3.0.0及更高版本
logout
登出
logout(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
msg: "请求成功!" //字符型;返回请求成功信息
code: 1 //整数型;返回请求成功代码
}
err:
- 类型:JSON对象
- 内部字段:
{
msg //请求失败原因描述
code //请求失败代码
}
示例代码
var taobao = api.require('taobao');
taobao.logout(function(ret, err){
if(ret){
alert(JSON.stringify(ret));
}
else{
alert(JSON.stringify(err));
}
});
可用性
Android系统,IOS系统
可提供的1.0.0及更高版本
错误码
- 1000 请求成功!
- 1001 尚未初始化,请先调用asyncInit方法!
- 1002 参数异常请检查修改后再试!
- 其他,请查看阿里的错误提示
打正式包接入详解
- 登陆阿里百川:阿里百川
- 未开通淘宝账户,需开通账户
- 进入控制台
- 选择应用管理中的创建应用,输入应用名词,选择类型后创建应用
- 应用创建成功后,在API申请中申请开通初级电商能力和无线开发百川淘客包权限
- 安卓应用在APICloud中,云编译生成正式包,下载安装包。IOS应用在APICloud中查看BundleID。
- 安卓应用在安全图片获取中上传你上一步下载的安装包,然后点击下载安全图片。得到安全图片yw_1222.jpg。 IOS应用在安全图片获取中输入上一步查到的BundleID,然后点击下载安全图片。得到安全图片yw_1222.jpg。
- 下载图片安全模块。
- 下载后得到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自定义模块。
- 引入taobao模块就可以调用模块内方法了。
常见问题
1、模块接入过程中常见问题可查看 问题详解 另外安卓模块更新后授权登录可能会出现“系统繁忙,请稍后再试”的提示 ,可以看问题详解 第七条。而且升级SDK后要在控制台重新生成新的安全图片。