首页 > 代码库 > 淘宝开放平台的那些问题
淘宝开放平台的那些问题
业务背景:我们公司(汽修汽配行业)有两个天猫店铺和一个后台管理系统(网点分配,服务跟踪等),现在要实现的是让每个店铺的订单信息自动同步到后台管理系统的数据库中,实现自动化。于是就用到了淘宝开放平台的知识,以及阿里云MNS的简单使用。
淘宝开放平台和其他开放平台的最大区别在于,要想用他的api开发的产品上线,必须购买他们提供的服务器,因为TOP(Taobao Open Platform)的api调用是限制ip的,只有用他们的机器的ip才能调TOP的api,这些机器叫做"聚石塔"。不过,淘宝为了方便开发人员测试,提供了”沙箱“环境,模拟真实场景,让开发者知道每个api的参数返回值之类的,关于沙箱环境的介绍请戳:http://www.tbsandbox.com/doc/index.html#taobao_acount
接入TOP之后创建一个应用,便有了appKey,appSecret,有些api是需要收费的,自己申请下就好了。一个应用可以授权报备多个店铺,于是我授权报备了两个店铺,用来同步两个店铺的订单信息,然后就开始调试api了。
api文档的底部都有api测试工具的链接,点击就进入了如图的页面:
这里要注意的一点是,数据环境这里还不能选择正式的,得购买”聚石塔“后才能有正式环境的权限。AppKey,AppSecret选择自定义,会多出一项SessionKey,这个会在调某些需要店铺授权的api时必须传入,例如上图中的查询卖家已卖出的交易数据。这个SessionKey可以在上面给的”沙箱“环境使用说明里面找到,有两种方法可以获取到该SessionKey。下图为沙箱环境使用说明中SessionKey的说明
方法一:点击上图链接便进入授权登录页面,跟QQ登录那种第三方登录界面差不多,然后你可能遇到登录授权不上的问题,然后你选择注册,发现怎么也注册不上,这个应该是TOP的一个坑了,这里用淘宝给的测试账号密码授权就可以了,账号是:sandbox_c_1 密码是:taobao1234。这个也是在沙箱环境使用说明里面,仔细阅读应该很容易找到,授权成功之后,进入他跳转的页面,输入AppKey就可以拿到SessionKey了,要注意的是这里的AppKey是你沙箱环境的AppKey,一般是在你的正式AppKey前面加10。如图:
方法二,根据api文档的授权登录流程,一步步发请求,先拿到code,再拿到accessToken,也就是SessionKey,这里就不过多介绍。
获取到SessionKey之后,调api就好说了,按照参数要求填进去,发请求就可以看到结果了。
最后需要注意的是SessionKey的有效期,这个等应用正式上线后,差不多有一年,所以不用过多考虑上线之后的SessionKey过期问题,测试期间过期了,自己再重新授权一下,就是麻烦一点,不多还是能照样用。其实,这个SessionKey就是用来区分店铺的,我的一个应用里面的两个店铺就是用这个来区分的,传入不同的SessionKey获取不同店铺的订单信息。
联系上业务场景,就是使用crontab定时任务,定时获取增量订单或者全量订单,然后放进阿里云MNS队列;另外一边,同样是定时任务获取队列里的订单数据,并保存到mysql数据库中,这样就完成了订单自动同步的效果。
最后给大家展示下交易api中taobao.trades.sold.get接口返回的数据的例子,真实的哟,嘿嘿:
array(17) {
‘buyer_nick‘ =>
string(11) "****"
‘created‘ =>
string(19) "2017-03-09 11:14:28"
‘end_time‘ =>
string(19) "2017-03-09 11:15:35"
‘modified‘ =>
string(19) "2017-03-09 11:15:35"
‘num‘ =>
string(1) "1"
‘orders‘ =>
array(1) {
‘order‘ =>
array(11) {
‘cid‘ =>
string(8) "5001456390"
‘num‘ =>
string(1) "1"
‘num_iid‘ =>
string(12) "54441518075707"
‘oid‘ =>
string(16) "261367867377036633"
‘payment‘ =>
string(6) "380.00"
‘pic_path‘ =>
string(83) "https://img.alicdn.com/bao/uploaded/i1/TB1VTA4NFXXXXadXXXXXXXXXXXX.jpg"
‘price‘ =>
string(6) "410.00"
‘refund_status‘ =>
string(9) "NO_REFUND"
‘seller_type‘ =>
string(1) "B"
‘status‘ =>
string(22) "TRADE_FINISHED"
‘title‘ =>
string(84) "瓦尔塔蓝标L2-400科鲁兹福克斯凯越速腾朗逸帕萨特天籁汽车电瓶"
}
}
‘payment‘ =>
string(6) "380.00"
‘price‘ =>
string(6) "410.00"
‘receiver_address‘ =>
string(25) "****"
‘receiver_city‘ =>
string(9) "唐山市"
‘receiver_district‘ =>
string(9) "路北区"
‘receiver_mobile‘ =>
string(11) "15083405878"
‘receiver_name‘ =>
string(9) "****"
‘receiver_state‘ =>
string(9) "河北省"
‘status‘ =>
string(22) "TRADE_FINISHED"
‘tid‘ =>
string(16) "26136784377036633"
‘type‘ =>
string(5) "fixed"
}
为了保护买家隐私,部分打了****,上述其他信息均为瞎写,请勿信以为真!如果手机号跟你的一样,纯属巧合!留言奖励红包一个哈哈。
好了,本次分享到这就结束了,感谢大家。欢迎留言交流哦~
淘宝开放平台的那些问题