ebay 开发api 开发 sdk, detail Levels and Granularity Levels 详细水平和颗粒度 GetSellerList GetCategoryFeatures
rading API calls that support DetailLevelTrading API calls that support OutputSelectorTrading API calls that support GranularityLevelGetAdFormatLeadsGetAccountGetBidderListGetBestOffersGetAdFormatLead
Features Guide
rading API calls that support DetailLevel Trading API calls that support OutputSelector Trading API calls that support GranularityLevel GetAdFormatLeads GetAccount GetBidderList GetBestOffers GetAdFormatLeads GetSellerList GetCategories GetAllBidders GetCategoryFeatures GetBestOffers GetCategoryMappings GetBidderList GetFeedback GetCategories GetCategoryFeatures GetItemTransactions GetFeedback GetMyeBayBuying GetItem GetMyeBaySelling GetItemsAwaitingFeedback GetMyMessages GetItemShipping GetOrders GetItemTransactions GetOrderTransactions GetMemberMessages GetSellerEvents GetMyeBayBuying GetSellerList GetMyeBaySelling GetSellerTransactions GetMyMessages GetTaxTable GetNotificationPreferences GetUser GetOrders GetUserDisputes GetOrderTransactions GetSellerEvents GetSellerList GetSellerTransactions Using any of these three filter types is just one way to reduce the size of the response payload. For information on other ways to control the data that is returned, see Controlling the Amount of Data Returned. Both DetailLevel or GranularityLevel have associated code types that define the enumeration values that can be used for each of these filters. The Trading API calls that can use each of the enumeration values, and how they use each value, differs with each call. See DetailLevelCodeType and GranularityLevelCodeType for more information on the different filter values available. You can also read the call reference documentation for each call for more information on how these values are used for each supported API call. Some more notes on using DetailLevel or GranularityLevel is shown below:
所有呼叫的标准数据
无论您是在刊登物品、浏览物品还是执行其他业务任务,对于所有请求,都会以标准方式处理一些数据。所有请求都需要这些数据。其他数据仅适用于某些呼叫,但您使用这些数据的方式是标准化的。本节描述了这些标准数据。
副主题
此外,有关需要追加到网关URL的标准数据的信息,请参见路由请求.
标准输入数据
任何传统的API调用都有两种需要发送的基本信息:API中所有调用通用的数据,以及特定于特定调用以实现该调用目的的数据。
在某些情况下,您可以使用中定义的输入字段来传递此数据AbstractRequestType。在其他情况下,您通过端点或HTTP头传递这些数据。公共输入数据在以下章节中描述。
您在传统API调用中使用的标记必须与API模式完全匹配,并且区分大小写。
UTF 8字符集
应用程序必须使用UTF 8编码方案(不是ISO-8859-1)。所有应用程序都必须验证每个请求正文中指定的文本字符串,以确保这些字符符合UTF-8标准。仅仅以UTF-8格式向易贝传送信息是不够的;如果用户提供的字符(如物品描述、街道地址、人名)是以非UTF-8字符集接收的(如从编码不是UTF-8的浏览器接收的)或以非UTF-8字符集存储在您的数据库中,您必须将这些字符转换为UTF-8字符集。
参见使用UTF-8核对表文章,了解更多信息。
指定目标站点
您在请求中指定的易贝市场会影响应用于请求的业务逻辑和验证规则。例如,由于美国和欧盟法律、买家行为和其他因素的差异,易贝美国市场和易贝德国市场遵循不同的规则。
有关有效站点名称和id的列表,请调用获取ebay详细信息或查看SiteCodeType文档。
在哪里指定目标站点(XML和SOAP)
对于某些请求,您需要指定市场两次:
例如,在AddItem,使用指定目标站点项目.位置输入字段。您为项目指定的站点应该与您在HTTP头或URL中指定的站点相匹配。
- (所有请求)使用数字站点ID将请求路由到正确的站点(请参见路由请求).这通常是列出项目的网站或用户注册的网站(取决于呼叫的目的)。
- 要在XML API中路由请求,请在X-EBAY-API-SITEIDHTTP头。
- 要在SOAP API中路由请求,请在URL中指定目标站点的数字ID。
- (一些请求)使用站点枚举值(请参见SiteCodeType)放在请求的正文中,以适合您正在使用的呼叫类型。
指定目标站点的位置(易贝SDK)
如果使用SDK,请在位置的属性ApiContext用于进行调用的。这ApiContext对象是可重用的。应用程序通常会创建和配置一个ApiContext对象,然后在应用程序会话期间将它用于所有API调用。这意味着如果您使用SDK,站点值通常只需要设置一次。使用(SiteCodeType).您可以使用更改特定呼叫的站点IDApiContext.设置站点( )方法(在易贝Java SDK中)或使用ApiContext.位置属性(在易贝SDK中为。网)。
对于某些通话,例如AddItem,您需要在列出项目时指定目标站点(在项目.位置属性)。您为该项目指定的站点应该与您在ApiContext.位置财产。当你设置项目。位置,使用(SiteCodeType).
为什么目标站点很重要
您在请求中指定的站点会影响应用于请求的业务逻辑和验证规则。例如,该站点可能会影响如下数据:
- 可用类别和类别层次结构的列表
- 国际业务要求(例如,上市是否需要缴纳增值税)
- 用于价格/费用的货币
- 运输成本计算
- 默认测量单位(例如,磅与千克)
- 显示在易贝网站上的与项目相关的时间戳
例如,项目修订时间可能使用本地化的时间戳,如PDT。这些时间戳不一定通过API显示,API以GMT表示时间值(参见关于GMT)
- 列表详细信息中某些标准化字符串值的本地化
- 返回的错误和警告字符串的语言
- 其他数据(因您使用的呼叫而异)
您指定的站点不一定充当限制返回数据的过滤器。这取决于请求的性质:
- 所有网站的商品ID都是唯一的(例如,英国网站上的商品ID不会在美国网站上的不同列表中重复使用)。这意味着通过项目ID过滤数据的调用(例如,GetItem)无论您指定哪个站点,都检索相同的列表。(这一点很重要,因为有时你只知道商品ID,但你可能不知道该商品是在哪个网站上列出的。)
- 同样,易贝用户id在所有站点中都是唯一的。这意味着通过用户ID检索数据的调用(例如,GetUser和GetSellerList)无论用户在哪个站点注册,也无论您在请求中指定哪个站点,都可以检索数据。(同样,这很重要,因为你可能不知道用户实际上是在哪个站点注册的。)
- 特定站点的用户信息(如美国站点上的Selling Manager Pro订阅)取决于您在请求中指定的站点。
- 如前所述,类别id在所有站点中不是唯一的,每个站点在类别层次结构中都有变化。因此,网站信息在检索基于类别的数据时具有筛选作用,并在您列出项目时影响验证。像这样呼叫AddItem如果您为指定的网站指定的类别ID不正确,将会失败。通过类别ID过滤结果的呼叫(例如,获取类别)通常只检索适用于您在请求中指定的站点的数据。
- 其他类型的用户信息(如注册日期)不取决于您在请求中指定的站点。
虽然将项目.位置字段对于某些调用来说可能不是显而易见的,如果您不传递位置枚举值,或者传入的值与HTTP头或URL中的值不匹配。因此,我们强烈建议您在列出项目时始终指定网站。
指定模式版本
在每个请求中,您需要传递您正在使用的模式的版本。如何操作取决于您使用的格式:
- 在SOAP API中,版本是在抽象请求和响应类型上定义的。将版本传递到版本请求负载的字段。
- 在XML API中,版本是在x-EBAY-API-兼容性级别HTTP标头(请参见HTTP头(仅限XML API)).
易贝返回我们在每个响应中使用的模式版本版本场。这让您确认我们使用了您期望的版本。
每个响应还包含一个建设场。这是指易贝在处理请求和生成响应时使用的特定软件版本。开发人员支持在帮助您解决技术问题时可能会要求提供构建信息。
SOAP响应消息中的版本元素
指定消息ID以关联请求和响应
消息ID用于将响应消息与触发它的特定请求消息相关联。这个相互关联的消息ID是一个可选的输入,应用程序可以使用它来实现对请求和响应消息的严格跟踪——如果应用程序必须处理许多这样的消息对,这一点尤其重要。将消息ID值传递到MessageID调用的请求对象的属性。该值在易贝站点中应该是唯一的,并且不能超过64个字符。
唯一消息ID应该由通用唯一标识符(UUID)或您的InvocationID值(参见为写调用指定唯一标识符(UUID))后跟一个破折号和一个特定于应用程序的值。
UUID
-
ApplicationSpecificValue
这UUID或者InvocationID值只能包含0-9之间的数字和A-F之间的字母,并且长度必须正好为32个字符。
这AddItem调用也接受 项目.UUID值作为输入。执行此调用时,我们建议您在两个MessageID和项目.UUID.
传入了相同的值MessageID(如果有)在CorrelationID响应负载的元素。这提供了特定请求及其响应之间的联系。易贝不会以任何其他方式读取或使用该值,其实际值仅对应用程序有意义。
应用程序可以使用该信息将特定的响应与触发它的请求明确地关联起来。例如,如果应用程序服务于多个客户,并且每个用户都有一些内部标识符(比如客户表中的客户序列号)和消息ID,那么应用程序就能够将响应与特定的客户相关联。
当然,应用程序可以使用这些方法的组合,比如在特定于应用程序的值中传递客户标识符。这将有助于将请求和响应彼此联系起来,并将响应与特定的客户相关联。例如,应用程序可能会传递一个值,如“9CEBD9A6825644EC8D06C436D6CF494B-00451
",其中连字符左边的字符是UUID,右边的字符是特定于应用程序的客户ID。最大长度为64个字符(包括UUID和连字符)。
许多编程语言都提供了生成UUIDs的类或模块。
有些调用旨在检索不经常更改的大量元数据。为了提高性能,当您请求所有可用数据时,这些调用会返回缓存的响应(没有过滤器)。在这些情况下CorrelationID不适用。但是,如果指定输入筛选器来减少返回的数据量,则可以使用MessageID和CorrelationID对于这些元数据调用。
指定错误语言
应用程序可以指定返回错误和警告消息的语言。这是通过在错误语言请求的属性。指定标准RFC 3066语言识别标记,作为返回错误信息的语言。例如,指定en_US
以美国英语返回错误信息。错误语言是一个可选输入,如果没有指定,默认为美国英语。看见https://developer . ebay . com/Devzone/finding/call ref/Enums/global idlist . html对于您应该输入的语言识别标签,以及相关的国家和易贝站点ID。
指定详细级别和粒度级别
对于许多返回多个对象(例如,多个项目)的数据检索调用,您可能希望通过减少每个响应中返回的字段(或该字段中的详细信息)的数量来减少响应有效负载的数量。
您可以使用的三种过滤器类型是详细级别, 输出选择器,以及粒度级别。下表显示了支持这些过滤器类型的交易API调用:
支持DetailLevel的交易API调用 | 支持OutputSelector的交易API调用 | 支持粒度级别的交易API调用 |
---|---|---|
GetAdFormatLeads | 获取帐户 | GetBidderList |
GetBestOffers | GetAdFormatLeads | GetSellerList |
获取类别 | 获取所有投标人 | |
GetCategoryFeatures | GetBestOffers | |
GetCategoryMappings | GetBidderList | |
获取反馈 | 获取类别 | |
GetItem | GetCategoryFeatures | |
GetItemTransactions | 获取反馈 | |
GetMyeBayBuying | GetItem | |
GetMyeBaySelling | GetItemsAwaitingFeedback | |
获取我的消息 | GetItemShipping | |
获取订单 | GetItemTransactions | |
GetOrderTransactions | GetMemberMessages | |
GetSellerEvents | GetMyeBayBuying | |
GetSellerList | GetMyeBaySelling | |
GetSellerTransactions | 获取我的消息 | |
GetTaxTable | GetNotificationPreferences | |
GetUser | 获取订单 | |
GetUserDisputes | GetOrderTransactions | |
GetSellerEvents | ||
GetSellerList | ||
GetSellerTransactions |
使用这三种过滤器类型中的任何一种只是减少响应负载大小的一种方法。有关控制返回数据的其他方法的信息,请参见控制返回的数据量.
两者详细级别或者粒度级别具有相关联的代码类型,这些代码类型定义了可用于每个筛选器的枚举值。可以使用每个枚举值的交易API调用,以及它们如何使用每个值,因每次调用而异。看见DetailLevelCodeType和粒度级别代码类型有关不同可用过滤器值的更多信息。您还可以阅读每个调用的调用参考文档,以了解如何将这些值用于每个支持的API调用的更多信息。
关于使用的更多注意事项详细级别或者粒度级别如下所示:
- 获取我的消息是唯一一个需要详细级别在请求有效负载中设置。对于所有其他交易API调用,不设置详细级别可能会导致响应负载比设置了详细级别价值。
- A 详细级别的价值
ReturnAll
,由支持的所有调用支持详细级别(除了获取我的消息),将确保在响应中返回所有可能和适用的数据。根据API调用和涉及的数据量,设置详细级别到ReturnAll
会影响客户端和服务器端的性能,所以开发人员应该利用这一点详细级别小心点。 - 一些交易API调用支持多个详细级别值,如果使用,开发人员将包括一个详细级别每个指定值的字段。
- 正如字段名所示,支持的值粒度级别设置响应中返回的详细信息的粒度(或比例)。这三个值是
Coarse
(结果较少),Medium
,以及Fine
(更多的结果),这到底意味着什么因API调用而异。 - 唯一粒度级别可以为每个API调用设置值。
这详细级别属性被定义(AbstractRequestType)(由许多交易API调用使用),而粒度级别属性是在支持它的两个交易API调用的基本请求类型中定义的,所以GetBidderListRequestType和GetSellerListRequestType).
通常,如果您传入一个详细级别或者一个粒度级别值不受特定交易API调用的支持,过滤器及其值将被忽略,并且不会触发错误/警告消息。
对于所有支持的呼叫详细级别和/或粒度级别,一个详细级别和/或粒度级别部分被添加到细节控制呼叫参考页的部分。这些部分包含一些表格,这些表格告诉用户根据详细级别和/或粒度级别设置的值。
这输出选择器过滤器的工作方式与详细级别和粒度级别。随着输出选择器,要返回的特定响应容器/字段是通过输出选择器字段。多重输出选择器字段可以在一次调用中使用。如果指定了容器,还将返回该容器的所有子容器。例如,如果你GetItem调用并设置输出选择器字段至ListingDetails
中的所有字段列出详细信息容器被返回。开发人员应该阅读特定API调用的调用参考文档,以获得有关使用输出选择器有了那个电话。
为写调用指定唯一标识符(UUID)
一些交易API调用支持使用UUID或者InvocationID请求参数。这些参数唯一地标识特定应用程序/用户组合的API调用的特定实例。参数长度必须正好为32个字符,并且仅包含0-9的数字和A-F的字母。参数不区分大小写。
使用UUID或者InvocationID值和支持的调用,以防止提交重复数据。如果不清楚调用是否成功,例如当出现网络错误时,您可以使用相同的UUID或者InvocationID价值。如果前一个调用成功了,那么第二个调用就不会成功,同样的数据也不会提交两次。
UUID建议与写入项数据的调用一起使用。如果重复UUID值用于调用,错误代码488将与先前列出的项目的项目ID一起返回UUID和一个布尔值,该值指示副本是否UUID是由同一应用程序发送的。
A UUID可用于唯一标识以下交易API调用的特定实例:
- AddFixedPriceItem
- AddItem
- 附加项目
- RelistFixedPriceItem
- 残留物品
- ReviseFixedPriceItem
- 修订项目
- VerifyAddFixedPriceItem
- VerifyAddItem
- VerifyRelistItem
如果重复InvocationID用于通话,错误代码21060将与DuplicateInvocationDetails容器如下所示。
重复的InvocationID错误结构
<DuplicateInvocationDetails> <DuplicateInvocationID>AAAAAAAA11111111BBBBBBBB22222222</DuplicateInvocationID> <Status>Success</Status> <InvocationTrackingID>9202918767</InvocationTrackingID> </DuplicateInvocationDetails>
这状态属性指示上一次调用是否成功(Success
),或者仍在进行中(InProgress
).这InvocationTrackingID属性提供特定于呼叫的跟踪号。
以下调用目前支持使用InvocationID:
- 添加订单
- AddToItemDescription
- 要约收购
- 修订项目
控制返回的数据量
一些响应可能包含很大的负载。有许多机制可以帮助您控制返回的数据量:
- 详细级别, 粒度级别,以及输出选择器是三个请求过滤器字段,可以定义在调用响应中返回的数据子集。看见选择要检索的字段.
- 日期/时间筛选器允许您指定日期/时间范围,以限制返回的数据量。例如,在GetSellerList呼叫已结束时间从和结束时间允许卖家仅检索在指定时间范围内结束的列表的字段。
- 分页筛选器允许您指定每页数据要检索的记录数量(如订单)。分页类型用于控制调用响应的分页,用户设置两个值条目页面值和a页码价值。这条目页面值设置每页数据返回的记录数,而页码值设置要返回的数据页。最大值条目页面值可能因API调用而异,而页码值将被设置为1返回第一页数据。用户可以打开页码值加1,以查看每一页连续的记录。每个支持分页的API调用都将返回一个容器,该容器显示TotalNumberOfEntries和TotalNumberOfPages(参见分页结果类型).基于这两个值,用户可以调整条目页面和页码在后续调用该API期间,请求中的值。
本文档中的各种主题在执行特定任务的上下文中引用了这些机制。请看正在检索项目举个例子。
安全性
以下小节描述了如何进行安全的传统API调用请求。
在易贝市场上的用户能够执行任何有意义的操作(列出项目、对项目出价等)之前。),该用户必须使用易贝用户名和密码登录网站。类似地,对于进行API调用的应用程序用户,必须确定应用程序最终用户被授权这样做。做出这个决定叫做证明。在易贝网站上,身份验证是由用户登录完成的。当应用程序代表用户时,身份验证是通过应用程序在API调用的请求中传递身份验证数据来完成的。易贝使用随呼叫请求传递的用户身份验证数据来识别发出请求的用户,并在执行所请求的操作之前对用户进行身份验证。
对于许多API调用(易贝站点上的许多用户活动就是这种情况),这种用户认证仅仅是验证用户是注册的易贝用户。例如,任何注册用户都可以使用GetSellerList。但是,有些操作要求所讨论的用户也被验证为特定用户。例如,只有物品的卖家被授权重新刊登特定的物品。因此,对物品重新列表操作的身份验证使用残留物品两者都会验证请求者是注册的易贝用户,并且是商品的卖家。
应用程序可以在调用方的请求中向易贝传递两种类型的身份验证数据:
- 一个是用户的身份验证令牌,如中的示例所示使用认证令牌进行认证.
- 另一个是开发人员凭证的完整密钥集,这是交易API所需要的费奇托肯, GetTokenStatus, 雷沃凯托肯,以及GetSessionIDAPI调用。看见使用完整密钥集进行身份验证.
使用认证令牌进行认证
应用程序可以通过将身份验证令牌传入eBayAuthToken请求字段。有关获取和续订身份验证令牌的更多详细信息,请参见获取代币.
下面的示例显示了eBayAuthToken交易API的SOAP版本中header元素下的字段。
传递令牌身份验证(SOAP)
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:ebl="urn:ebay:apis:eBLBaseComponents"> <soap:Header> <ebl:RequesterCredentials soapenv:mustUnderstand="0"> <eBayAuthToken>... AUTHENTICATION TOKEN GOES HERE ...
</eBayAuthToken </ebl:RequesterCredentials> </soap:Header>... Call body ...
</soap:Envelope>
在XML版本的交易API中eBayAuthToken元素在请求者证书元素,如下所示:
传递令牌身份验证(XML)
<?xml version="1.0" encoding="utf-8"?>
<GeteBayOfficialTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken> Token goes here
</eBayAuthToken>
</RequesterCredentials>
<Version>1201</Version>
</GeteBayOfficialTimeRequest>
Trading API SDK for Java提供的一个示例展示了如何在Java中添加这个元素,并用一个身份验证令牌填充它。具体来说,请参见Global.java
文件在signingredirect
易贝Java SDK中的文件夹:
面向Java的易贝SDK
Java SDK | eBay Developers Program
以下应用于SOAP API的示例显示了如何在C#中添加此header子元素,并使用身份验证令牌填充它。
传递令牌身份验证(C#)
service.RequesterCredentials = new CustomSecurityHeaderType(); // Specify the authentication token for the requesting user service.RequesterCredentials.eBayAuthToken = UserToken;
如果您使用Trading API SDK for Java,请在API凭据的属性ApiContext用于调用的对象。这ApiContext.API凭据。eBayToken属性保存调用的身份验证令牌。身份验证令牌在变量中传递token
,其类型为string
。有关Java中的示例,请参见Global.java
文件在signingredirect
易贝Java SDK的文件夹:
易贝软件开发工具包。网
.NET SDK | eBay Developers Program
的交易API SDK中。NET中为请求用户传递身份验证令牌API凭据的属性ApiContext用于调用的对象。这ApiContext.API凭据.eBayToken属性保存调用的身份验证令牌。在下面的示例中,身份验证令牌在变量中传递token
,其类型为string
.
传递令牌身份验证(C#)
// Create the ApiContext object and specify the credentials ApiContext context = new ApiContext(); context.ApiCredential.ApiAccount.Application = "MyAppId"; context.ApiCredential.ApiAccount.Certificate = "MyCertId"; context.ApiCredential.ApiAccount.Developer = "MyDevID"; context.ApiCredential.eBayToken = "ABC...123";
使用完整的密钥集和会话ID进行身份验证
使用完整的应用程序密钥集(DevId
, AppId
,以及CertId
)对大多数呼叫来说,不需要认证呼叫的请求者。
但是,一些调用确实需要完整的密钥集。这些异常调用都与身份验证和令牌相关联:费奇托肯, GetSessionID, GetTokenStatus,以及雷沃凯托肯.
对于这些调用,您将应用程序的完整键集与请求一起传递。
对于SOAP和XML版本的交易API,您在请求的头中传递键集。这费奇托肯下面的SOAP和XML示例显示了包含基于密钥集的身份验证数据的头元素:
在头中传递键集(SOAP)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:ebl="urn:ebay:apis:eBLBaseComponents"> <soap:Header> <ebl:RequesterCredentials soapenv:mustUnderstand="0"> <Credentials> <DevId>MyDevId</DevId> <AppId>MyAppId</AppId> <AuthCert>MyCertId</AuthCert> </Credentials> </ebl:RequesterCredentials> </soap:Header> <FetchTokenRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <SessionID>MySessionID</SessionID> <Version>613</Version> </FetchTokenRequest> </soap:Envelope>
在头元素中传递键集(XML)
X-EBAY-API-COMPATIBILITY-LEVEL: 613 X-EBAY-API-DEV-NAME:MyDevID X-EBAY-API-APP-NAME:MyAppID X-EBAY-API-CERT-NAME:MyCertID X-EBAY-API-CALL-NAME:FetchToken X-EBAY-API-SITEID:0 Content-Type:text/xml Request Payload: <?xml version="1.0" encoding="utf-8"?> <FetchTokenRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <Version>613</Version> <SessionID>MySessionID</SessionID> </FetchTokenRequest>
易贝Java SDK提供的一个示例展示了如何基于您的易贝开发者的Java程序证书传递认证数据。具体来说,请参见ClientAuthenticationHandler.java
文件在handler
易贝Java SDK的文件夹:
面向Java的易贝SDK
Java SDK | eBay Developers Program
如果您使用的是Trading API SDK for Java,请在API凭据的属性ApiContext对象。这API凭据对象有一个API帐户属性包含应用程序的凭据和一个ebay帐户属性来保存请求用户的易贝开发人员的程序凭据。这些用于对呼叫的用户进行认证。变量用于应用程序的凭证(mDevID
, mAppID
,以及mCert
)和易贝开发者的计划证书。这些变量都是类型String
.
易贝软件开发工具包。网
.NET SDK | eBay Developers Program
如果您使用的是Trading API SDK。中的API调用请求内传递您的易贝开发人员的程序凭据API凭据的属性ApiContext对象。这API凭据对象有一个API帐户属性包含应用程序的凭据和一个ebay帐户属性保存请求用户的易贝开发人员程序凭据,这些凭据用于对用户进行调用身份验证。用于表示应用程序凭证的变量(devID
, appID
,以及cert
)和包含易贝开发者的程序凭证的变量都是类型string
.
标准输出数据
标准输出字段在中定义AbstractResponseType
。所有交易API调用共有的输出字段如下所示,也将在接下来的几个部分中简要讨论
- 时间戳
- 版本
- 建设
- 确认字符(acknowledgementcharacter)
- CorrelationID
- 消息
- HardExpirationWarning警告
- 错误
时间戳
所有响应都返回一个时间戳(UTC/GMT格式)来指示响应的生成时间。看见易贝类型有关UTC/GMT值的信息。
时间戳表示易贝处理请求的时间;它不一定指示当前时间。例如,一些调用像获取类别可以返回缓存的响应,因此时间戳可能不是最新的。
版本和内部版本
这版本和建设字段分别显示模式的版本和易贝在处理请求和生成响应时使用的特定软件版本。开发人员技术支持可能会要求开发人员提供建设解决问题时的价值。
确认
所有响应返回一个标准确认字符(acknowledgementcharacter)指示呼叫成功、失败或部分失败的字段。
一些用于向易贝提交数据或指令的调用会返回一个确认字符(acknowledgementcharacter)的状况Success
,并且没有呼叫特定的数据。例如,当您使用完全销售要在“我的易贝”中更改物品的“已付款”或“已发货”状态,您只需知道您的请求已成功。
其他数据提交调用返回Success
并包含执行后续任务所需的其他字段。例如,当您使用AddItem为了列出一项,它返回ItemID、开始和结束时间以及其他有用的数据。
当调用成功时,它也可以返回有用的警告。例如,警告可能表示您的身份验证令牌即将过期,您传入了一个无法识别的字段,您的请求中的一些数据被丢弃,或者其他有用的信息。请看错误处理有关处理警告的更多信息。
如果确认字符(acknowledgementcharacter)字段返回Failure
,这意味着您的请求无法处理。在这种情况下,会返回一个或多个错误来解释失败的原因,并且不会返回其他特定于呼叫的数据。请看错误处理有关处理错误的更多信息。
非常有限数量的调用可以返回确认字符(acknowledgementcharacter)的状况PartialFailure
。这意味着您的请求的一部分成功,而另一部分失败。
CorrelationID
如果你传入一个MessageID值,我们将在CorrelationID响应中的字段。这对于跟踪为每个请求返回的响应以及将特定的响应与特定的请求相匹配可能是有用的。看见指定消息ID以关联请求和响应了解更多信息。
消息
这AddItem一系列调用和某些其他交易API调用可以返回消息为卖家提供对刊登成功至关重要的信息的字段。这可能包括列表提示、违反策略的解释或其他详细信息。(参见字段索引在……里易贝贸易API参考获取返回此字段的调用的完整列表。)
应用程序必须识别消息字段,并提供向用户显示消息的方法。
这些消息为最终用户提供了以下主要优势:
- 卖家可以检视并解决潜在的政策违规问题,以降低他们的物品被易贝行政终止的可能性。
- 销售者可以利用这些暗示作为增加销售的工具。例如,一个提示可以建议新的卖家,包括更多的图片已经被证明可以将列表的成功率提高一定的百分比。
为了列出用例,我们强烈建议您使用VerifyAddItem在卖家提交他们的列表之前将这些消息显示给卖家。(您仍然应该检查AddItem对任何附加消息的响应。)通过确保卖家及时收到政策信息和其他信息,你可以帮助改善卖家在易贝的体验。如果忽略这些信息,可能会导致物品被终止销售,并引起卖家的普遍不满。
当返回错误时消息对于阻塞(故障)和警告情况(除了错误.长消息和错误.短信息字段)。在这种情况下消息字段通常包含对错误发生原因以及如何解决问题的更详细的解释。
如果请求成功并发出警告,而不是失败并出现严重错误,这并不意味着消息不重要。例如,如果一个列名似乎违反了零容忍政策,但在提交时确定性低于100%,列名请求可能会成功,但会发出警告。在这种情况下消息字段可能会返回一条策略消息,其中包含与该问题相关的指导和教育。如果卖家没有很快根据要求修改列表,易贝仍然可以在短时间内以违反政策为由行政终止列表。
这消息字段可能包含HTML元素,例如<TABLE>
和<IMG>
标签和网址。如果您的应用程序不支持HTML,您可以解析标签,然后将数据转换成特定于您使用的编程语言的UI元素。
错误和警告
对于任何请求,可能会在错误集装箱。请看错误处理有关处理错误的更多信息。
硬过期警告
如果用户的身份验证令牌即将过期,所有使用该令牌的调用都将返回一个HardExpirationWarning警告带有到期日期的字段。看见关于代币.
更多推荐
所有评论(0)