淘宝API开发系列---阿里.聚石塔.开放平台的使用

好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此原以为直接运行或者稍微修改一下即可,因此没有太多的注意。

可是,发现淘宝的API应用变化已经很大了,离我最后一篇淘宝API例子的随笔《淘宝API开发系列---淘宝API的测试及使用2 》有一年多的时间了,因此重新到http://api.taobao.com/myresources/standardSdk.htm里面下载最新的SDK进行更新调整,可是里面很多接口已经有所变化,有些已经在客户端SDK里面不再支持。

首先我们需要申请一个应用

特别的是,现在的淘宝API客户端应用,也只有公司账号才能使用,普通的淘宝用户只能使用Web应用方式,貌似如果不是选择客户端应用,那么使用Winform程序,将不能正确获取相关的API信息。我使用公司账号调整一个应用为客户端应用。

我在我原来例子的基础上,根据最新的SDK进行了修改,有些如不需要SessionKey获取用户信息的接口已经不能使用了,例如客户的买入的订单记录也不能使用了,而且新增了很多相关的接口内容。

为了更好对API的使用,我们需要使用淘宝API的测试工具进行测试相关的接口,如下界面所示。

对于需要获取用户私密信息,如店铺及交易等重要信息,还需要获取用户的SessionKey的,我们可以通过下面接口函数,弹出登录窗口,然后登录后,定位到对应的App应用页面,然后页面加载的时候,获取到对应的SessionKey。

通过上面两个对话框的登录和确认操作,获取到TOP授权码,并根据规则获得SessionKey了,这样一些重要数据就可以通过获取其中的SessionKey进行获取了。

首先我们来看看几个功能模块的界面效果和操作代码。

1)获取登录用户的信息

主要代码如下所示:

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(this.appkey);
            }

            //用户的信息
            Console.WriteLine("用户的信息");
            UserSellerGetRequest req = new UserSellerGetRequest(); //实例化具体API对应的Request类
            req.Fields = "user_id,nick,created,buyer_credit,type,sex";
            UserSellerGetResponse rsp = myclient.Execute(req, sessionKey);//执行API请求并将该类转换为response对象
            Console.WriteLine(rsp.Body);
            if (rsp.User != null)
            {
                //Console.WriteLine(rsp.User.Nick);
                //Console.WriteLine(ObjectToString(rsp.User));
                List<User> list = new List<User>();
                list.Add(rsp.User);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = list;
            }

2)获取单独商品信息

获取单独的产品信息不需要SessionKey,具体代码如下所示。

            //单独商品的信息
            Console.WriteLine("单独商品的信息");
            ItemGetRequest req = new ItemGetRequest();
            req.Fields = "num_iid,title,nick,pic_path,cid,price,type,location.city,delist_time,post_fee";
            req.NumIid = 10838073156L;//3838293428L;
            ItemGetResponse itemRsp = myclient.Execute(req);
            if (itemRsp != null && itemRsp.Item != null)
            {
                List<Item> list = new List<Item>();
                list.Add(itemRsp.Item);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = list;
            }

3)获取店铺商品列表

开发淘宝应用,很多时候,用于本公司的ERP或者产品管理系统与淘宝店铺的数据同步,因此需要获取自己商店的一些商品数据,然后进行修改更新等操作。获取商品信息主要代码如下所示。

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(this.appkey);
            }

            //查询店铺商品信息
            Console.WriteLine("查询店铺商品信息");
            ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest();
            req.Fields = "approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru,list_time,price,has_discount,has_invoice,has_warranty,has_showcase,modified,delist_time,postage_id,seller_cids,outer_id";
            req.PageNo = 1;
            req.PageSize = 40;

            //显示列表信息
            ItemsOnsaleGetResponse itemRsp = myclient.Execute(req, sessionKey);
            if (itemRsp != null)
            {
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = itemRsp.Items;
            }

4)获取店铺卖出交易信息

店铺的卖出交易信息获取的代码如下所示。

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(appkey);
            }

            //卖出交易
            Console.WriteLine("卖出交易");
            TradesSoldGetRequest req = new TradesSoldGetRequest();
            req.Fields = "tid,title,price,type,num_iid,seller_nick,buyer_nick,status,receiver_state,receiver_city,receiver_district,receiver_address";
            req.PageNo = 1L;
            req.PageSize = 40L;
            TradesSoldGetResponse soldRsp = myclient.Execute(req, sessionKey);
            if (soldRsp != null)
            {
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = soldRsp.Trades;
            }

以上就是一些基础淘宝API的使用说明,当然,完善的淘宝应用系统客户,可能需要做更多的东西,如商品信息同步、库存同步、自动评价、自动发货等操作,不过基本的操作思路是很接近的,只需要进一步查找淘宝API的使用说明,以及一些经验代码即可。

本文转自博客园伍华聪的博客,原文链接:淘宝API开发系列---阿里.聚石塔.开放平台的使用,如需转载请自行联系原博主。

时间: 2024-08-22 14:46:09

淘宝API开发系列---阿里.聚石塔.开放平台的使用的相关文章

淘宝API开发系列---淘宝API的测试及使用2

继续前面一篇随笔<淘宝API开发系列---淘宝API的测试及使用>,来继续介绍淘宝API的具体代码开发部分,上篇主要是介绍淘宝SDK开发的一些流程及必备的信息,以及掌握如何学会利用API文档.淘宝API测试工具来获取我们所需的数据,其中我一般倾向于获取Json数据,然后进行分析,其中Json数据可以通过JsonView工具(http://jsonviewer.codeplex.com/)进行格式化显示,方便我们了解和区分各个属性的信息.另外淘宝的SDK里面,封装了很多对象,我们通过数据就可以获

淘宝API开发系列--商家的绑定

在上篇<淘宝API开发系列--开篇概述>介绍了下淘宝API平台的一些基本知识,由于一直有事情忙,就没有及时跟进随笔的更新,本篇继续讨论淘宝API的开发知识,主要介绍商家的绑定操作.上篇我们说过,淘宝就是基于应用程序键来控制用户的访问频率和流量的,另外可以通过应用程序键,让使用者登陆确认,获取到相关的授权码,然后获取SessionKey,作为访问使用者淘宝资源(如买入卖出等私人记录的信息).  我们再看看SessionKey是如何获取的(下面是淘宝关于正式环境下SessionKey的说明): 正

淘宝API开发系列--开篇概述

前阵子有空发现淘宝的API挺有意思的,就留意学习了一下,淘宝从2008.6月开始公测以来,API渐趋稳定,文档的相关说明也比较细致,不过基于淘宝API做应用的软件目前应该还不是很多,不过由于马云的影响力,淘宝API终会发光发热,给我们做开发的程序员多一份选择,多一个摆弄的东西. 在学习中,发现有一些比较好玩,比较有趣的地方,如果有空继续的话,准备开一个系列,总结介绍一下相关的知识,希望能够给博客多一份人气,多一份积累. 淘宝开放平台(Taobao Open Plateform,又叫TOP),地址

阿里巴巴高级技术专家张智宇:阿里聚石塔电商云容器服务应用和实践

大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 议题名称:<阿里聚石塔电商云容器服务应用和实践> 议题简介:聚石塔是阿里电商云,承载着品牌商.ISV等阿里生态各角色的电商IT系统云化的任务,这些ISV和品牌商的系统很多都运行在淘系电商的主链路上,三方系统的稳定性就成为了这个淘系电商稳定性保障的重要组成部分.为了让ISV更好的支持双11.实现三

谈谈Magento与淘宝API整合

在群里聊到了这个话题,把聊的内容整理下放这里. 现在用Magento来建国内B2C网站的越来越多了,而淘宝是国内电子商务界的老大,这也就带来一种现象就是,使用Magento做独立B2C运营的公司,必然也会在淘宝上开个店.这就带来了一个很现实的问题,如何统一去管理淘宝店和独立官网的数据,比如订单,比如产品数据.库存等. 这里分享我所知道的三种方案 第一种,开发独立的第三方订单处理系统,通过淘宝api抓淘宝订单,通过Magento的api抓Magento的订单,放在一起处理. 第二种,淘宝店已经在用

一位淘宝前端开发人员的心声:马云的加班论是谬论

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这是某位淘宝前端开发人员一篇博客,转载过来,与各位分享: 最近心里有点烦,烦出高血压的话,就要到"无忧高血压http://www.wuyougaoxieya.cn"去找些降压的方法了.忙着一堆事情,终于能轻松点了,码码字,透透气. 不加班冲突 昨天因为不愿意加班,和一个项目经理Y发生了一些不愉快.Y的一部分理论是马云语录:

图片-淘宝API问题 请教大神们帮忙 我完全小白哦

问题描述 淘宝API问题 请教大神们帮忙 我完全小白哦 http://interface.im.taobao.com/api/wwfile/downloadWwFile.json?spm=0.0.0.0.5PDty5&width=532&height=432&size=51108&md5hash=2a357bb8be942cc14d76f5391d0dbca9&ftsid=239702641460869263&suffix=.jpg&fromid=c

调用淘宝api问题,获取数据response那一行报错

问题描述 调用淘宝api问题,获取数据response那一行报错 TaobaoClient client = new DefaultTaobaoClient(su.getUrl(), su.getAppKey(), su.getAppSercet()); WangwangEserviceGroupmemberGetRequest req = new WangwangEserviceGroupmemberGetRequest (); if(managerId!=null && !"

调用淘宝api接口taobao.logistics.offline.send (自己联系物流(线下物流)发货)

问题描述 调用淘宝api接口taobao.logistics.offline.send(自己联系物流(线下物流)发货)在这个接口的调用中后台收到淘宝返回异常信息为:[调用API更新淘宝交易状态为已发货失败,信息:ErrCode:15ErrMsgRemoteserviceerrorSubErrCode:CD01SubErrMsg:CD01#当前订单不允许用其他物流公司发货]这里提示信息为,我们使用的物流公司错误,我们代码中使用的物流公司为:varreq=newLogisticsOfflineSen