跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

利用 eBay SDK 和 Web 服务构建网上市场,第 1 部分

列出在 eBay 出售的商品

Rob Chappelle (rob@robnsarah.com), 执行董事, Arpeggio 顾问
Rob 8岁就开始编程。他亲身经历了网络的兴起,当 Archie 只是你的一个查找东西的工具的时候,他早就投身与其中。当时,google 只是一个毫无意义的单词。在过去的几年里,他致力于 Web 服务应用程序的开发。他的成功离不开他的妻子 -Sarah。他们现在住在西雅图.华盛顿。

简介: 在 eBay SDK和 Web 服务的帮助下着手建立您自己的网上市场。有超过 40% 的 eBay 列表是通过调用 eBay API 实现的。eBay 现在有了 Windows 平台和 Java 平台下封装这些 API 的 SDK ,使得您定制访问 eBay 市场更为简单。作为系列文章中的第一篇,本文向您展示如何建立 eBay 上出售商品的列表。

发布日期: 2004 年 11 月 01 日
级别: 初级
访问情况 : 1741 次浏览
评论: 


eBay Web 服务

eBay 是一个买卖商品的巨大市场。 但是,假如您像我一样周围堆着一箱箱的标着 eBay 出售的物品的话,那么在这些物品放到 eBay 出售前将需要较长的一段时间。因为有那么多的工作要做,首先要登录到 Web 站点,然后为每一个不同的物品都建立一个商品列表。eBay 列表接口对于一次只为一个商品建立列表很好用。我过去经常设想:如果可以直接通过电子表格或数据库的形式来提交商品信息,有什么东西使得提交的信息自动在 eBay 在列出该多好啊。

eBay Web 服务的出现使得我梦想成真。 值得庆幸的是,现在 eBay 提供了方便访问 eBay 市场的Web 服务。 自从 2000 年,eBay 就提供一组 XML API ,它被用来在 HTTPS 在以 XML 文档的形式传送数据。就在这年之前, eBay 发布了一组 SOAP API ,它通过 SOAP 和 WSDL 来定义一种 eBay 脚本,简化了对 eBay 平台的访问。这两组 API 都利用了 eBay Web 服务来提供对于同样功能和数据的访问。这些 API 使得定制与 eBay 交互的应用程序变得简单。

这些 API 的作用是显而易见的,事实上,目前超过 40% 的 eBay 列表都是通过调用 API 来实现的。

为进一步简化基于 eBay 的 Web 服务来定制应用程序的过程, eBay 提供了 2 个 SDK 来封装 eBay Web 服务的 API ,使得您可以选择是通过 .NET 技术在 Windows 平台进行开发还是基于 Java 语言进行开发。eBay SDK 是一个强大、灵活、极易上手的工具包,它直接与 eBay 进行交互。在 SDK 出现之前,您不得不格式化自己的 XML 来适应 eBay API 调用,但 eBay API 至今仍是访问 eBay 数据库的有力手段。

过去的几年里,一直只有一种 Windows 平台上的 eBay SDK 。但现在,也有了针对 Java 技术平台的 eBay SDK。Windows 平台的 SDK 封装了 XML API ,Java 平台的 eBay SDK 封装了 SOAP API 。通过封装XML API 或 SOAP API ,二者都提供给您简单易用的对象。其它编程语言仍然可以通过直接调用 API 来访问 eBay Web 服务。

图 1 说明了 eBay 的 Web 服务体系结构 。


图 1. eBay Web 服务体系结构
 eBay Web 服务体系结构

开始

为使用 eBay Web 服务,您必须加入 eBay 开发者计划,因此,第一步便是注册您在 eBay 的帐号。

根据您的需要,您可以注册免费的个人帐户,或付费的商业帐户。当前收费价格如 表 1 所示。为获取全面、最新的价格信息。请访问 eBay 会员服务和收费页面


表 1. eBay 开发者计划收费
个人 基本 专业 企业
API
许可类型 个人的 商业的 商业的 商业的
请求中包含的 API 每天 50 每月 30,000 无限制 无限制
收费
会员年费 免费 $500 $1,000 $5,000
月度 API 使用收费 超过 30,000 每 1,000 收取 $2.90 每 1,000 收取 $1.60 每 1,000 收取 $1.25
认证收费 (每应用程序) $100 $200 $200 已包含 (每年1个)

说明:请求中包含的 API 中的请求指的是除 AddListItem ReListItem 以外的请求, AddListItem ReListItem 请求在任何时候都是免费的。

在 12 小时之内将接收到一封邮件,在其中包含的“沙箱“测试环境中通过使用密钥,开发者计划帐户马上被激活。

您的帐户一旦建立完,就可以下载并安装 eBay SDK 了,同时还将获得大量有用的开发信息。您可以使用 Windows 版本或者 Java 技术版本的 SDK 。

eBay SDK 的版本选择主要决定于您开发应用程序时使用的语言。这两个版本的 SDK 提供了非常相似的对象集以及同样的功能和数据。二者的主要区别在于 Windows 版本 SDK 将对象存储在本地 综合数据库中,当你与 eBay 同步时,则将整个对象集合发送到 eBay 数据库。 对于 Java 版本的 SDK ,本地没有综合数据库,每一次调用都实时地写到 eBay 数据库。

一旦您拿到了密钥,您需要建立一个测试用户来测试“沙箱(Sandbox)”中的您的应用。这也非常简单,您所要作的就是按照 eBay 使用说明一步步执行。


列出商品

现在,您已经准备好测试您的应用了,现在让我们看看如何利用 SDK 来列出商品。

表 2 是我的商品的一个列表。商品数据可以是简单的文本文件、电子表格或数据库,它们可以由任意应用产生。 不管这些应用程序是如何实现,我们假设应用总能够正确解析数据并使得 SDK 对象可以通过调用一个名为 MyStuff 的对象来访问这些数据。对于每一列的列头, MyStuff 总有一个塑像与之相对应,如 MyStuff.Description 对应 Description 列。下面的示例代码假设此对象存在。


表 2. eBay 出售的示例商品
标题 描述 位置 分类ID 底价 一口价 拍卖周期
Code Complete book Steve McConnell的著作, 保存良好。 西雅图.华盛顿 2228 $10.00 $25.00 7
TiVo TiVo 有 10 小时录音时间。工作状况良好。 西雅图.华盛顿 79865 $30.00 $75.00 7
索尼爱立信 T610 手机 T-Mobile cell phone, excellent condition. 西雅图.华盛顿 64355 $50.00 $125.00 7

步骤 1: 建立执行环境

为建立执行环境,创建一个 API 请求上下文对象,认证请求用户,并确定 Web 服务的 URL 。

清单 1 向您展示了如何建立一个执行环境,并调用 AddItemCall 来列出一个新商品。


清单 1. 建立执行环境
// Import the applicable libraries 
import com. eBay .sdk.*; 
import com. eBay .sdk.call.AddItemCall; 
import com. eBay .soap.eBLBaseComponents.*; 
import com. eBay .soap.CoreComponentTypes.AmountType; 
... 
// Create an  API CallContext object for the call 
 API Context  API Context = new  API Context(); 
 
 API Credential cred =  API Context.get API Credential(); 
 API Account ac = cred.get API Account(); 
 eBay Account ec = cred.get eBay Account(); 
// Authenticate the requesting user: 
// Specify the  eBay  SOAP server URL 
 API Context.set API ServerUrl(mServerURL);

步骤 2: 定义新商品

下面,定义一件新的商品,并设置它的属性如 清单 2 所示。这一示例使用了上面提到的 MyStuff 对象


清单 2. 定义新商品
ItemType item = new ItemType(); 
item.setListingType(ListingTypeCodeType.Chinese); 
item.setCurrency(CurrencyCodeType.USD); 
item.setCountry(CountryCodeType.US); 
item.setPaymentMethods(new BuyerPaymentMethodCodeType[] 
    {BuyerPaymentMethodCodeType.PaymentSeeDescription});
item.setRegionID("0"); 
item.setListingDuration(MyStuff.Duration); 
 
item.setTitle(MyStuff.Title); 
item.setDescription(MyStuff.Description); 
item.setLocation(MyStuff.Location); 
item.setQuantity(1); 
item.setStartPrice(new AmountType(new Double(MyStuff.StartPrice)); 
item.setBuyItNowPrice(new AmountType(new Double(MyStuff.BuyItNowPrice)); 
CategoryType cat = new CategoryType(); 
cat.setCategoryID(MyStuff.CategoryID); 
item.setPrimaryCategory(cat);

步骤 3: 调用 API 请求

添加商品的最后一步是对 Web 服务调用 API 请求。它遵循以下几个流程:

  • 声明一个 FeesType 对象。
  • ItemType 对象传递给 AddItemCall.ItemToAdd 对象。
  • 调用 AddItemCall.addItem() 方法。
  • FeesType 对象中保存 addItem() 方法的返回值。

说明:如果可能发生错误,API 调用必须总在 Try. . .Catch 块中。


清单 3. 调用 API 请求
try { 
    // Create the AddItemCall object 
    AddItemCall  API  = new AddItemCall( API Context); 
     API .setSite(siteID); 
    // Declare the FeesType object to hold the returned 
    // estimated listing fees data 
    FeesType fees; 
 
    // Make the call 
    fees =  API .addItem(item); 
    // Store the fees to a database 
    ... 
} 
catch(Exception e) { 
    ... error handling ... 
} 

至此,所有工作都完成了。这些是利用 eBay Web 服务列出商品的基本步骤。同时还会有其它一些特性,如拍卖管理、查找、管理反馈等。详细信息请参考(与 SDK 一起下载的)SDK 文档


结束语

eBay SDK 使您可以创建的应用程序更加容易地访问 eBay Web 服务,不管你是 Windows 程序员还是 Java 程序员。开发者计划 Web 站点提供的支持很有用,SDK 文档也相当不错。现在就开始动手建立您自己的应用吧!

作为系列文章中的第一篇,本文从实践的角度探究了如何利用 eBay Web 服务,如管理商品列表、完成交易以及处理反馈信息等。在接下来的文章中将包含更多的应用程序示例。


参考资料

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文

  • 访问 eBay 开发者园地 主页以获取详细信息。

  • 建立你的 eBay 开发者计划帐号

  • 浏览 eBay 开发者计划 收费清单以找到你需要的最佳帐户类型。

  • 在 eBay 开发者园地的 社区中与其它开发者讨论。

  • 下载 eBay Java SDK(免费)。

  • 下载 eBay Windows SDK(免费)。

  • 示例代码基于 SDK 文档中的示例代码(包含在 SDK 下载中),这也是一个非常不错的学习资源。

关于作者

Rob 8岁就开始编程。他亲身经历了网络的兴起,当 Archie 只是你的一个查找东西的工具的时候,他早就投身与其中。当时,google 只是一个毫无意义的单词。在过去的几年里,他致力于 Web 服务应用程序的开发。他的成功离不开他的妻子 -Sarah。他们现在住在西雅图.华盛顿。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=49093
ArticleTitle=利用 eBay SDK 和 Web 服务构建网上市场,第 1 部分
publish-date=11012004
author1-email=rob@robnsarah.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。