专注出海运营平台,解决跨境电商问题
当前位置:跨境智通山 > 其他跨境 > 正文

如何使用亚马逊“事件通知 Web 服务”,使用 XML 管理亚马逊订单2——确认接收订单

2021-12-12 20:15:51 其他跨境

如何使用亚马逊“事件通知 Web 服务”,使用 XML 管理亚马逊订单2——确认接收订单摘要

如何使用亚马逊“事件通知 Web 服务”?:使用 ENS我们提供此使用案例以帮助您理解使用“事件通知 Web 服务”的方法。尽管可能有使用“事件通知 Web 服务”的其他方法,此使用案例代表最为常见的使用案例和我们推荐的方法。1. 您的应用程序使用 XML 管理亚马逊订单2——确认接收订单通过“订单确认”上传数据,您能够确认订单下载是否成功。确认上传数据还允许您提供自己的订单编号和订单商品编号,如果需要的话,可在之后用作相同订单的上传数据的参考。

如何使用亚马逊“事件通知 Web 服务”,使用 XML 管理亚马逊订单2——确认接收订单

如何使用亚马逊“事件通知 Web 服务”?

使用 ENS

我们提供此使用案例以帮助您理解使用“事件通知 Web 服务”的方法。尽管可能有使用“事件通知 Web 服务”的其他方法,此使用案例代表最为常见的使用案例和我们推荐的方法。

1. 您的应用程序第一次启动时,您尚未检索任何事件且您没有已存储的分页 Cookie。要检索您的首个事件“页面”,请调用“获取事件”操作,并结合您要的“事件类型”以及符合您需要的“起始日期”和“数量限制”组合。例如,您可仅使用“起始日期”参数检索特定日期以来的所有事件,或者使用“数量限制”参数检索特定数量的最近事件。或者您可以将二者结合,检索特定日期之后特定数量限制的事件。您还可以提供“每页事件数”参数,以指定每次调用该服务时您想要检索的事件数量,或者您可以直接略过该参数,以允许“事件通知 Web 服务 (ENS)”自行决定向您发送的事件数。

2. ENS 将针对您指定的“事件类型”回复一组“事件通知”。由于您需要使用分页 Cookie 从您离开位置重新开始并检索额外事件,当您处理完那些事件后,请在安全位置保存分页 Cookie。如果您使用数据库存储事件数据,最好的方法是在数据库事务内处理并存储所有事件,然后也在提交事务之前,将分页 Cookie 存储在同一事务上下文中。这样,如果您的应用程序在处理一组事件时失败,则它能自动返回至您之前的分页 Cookie 并且不会有丢失或遗漏事件的风险。

如果“存在更多页面”标记被设置为“是”,则表示有更多有待检索的新事件。在这种情况下,您可能想要立刻调用“获取更多”以检索更多事件。注意:您仍必须等待分页 Cookie 中“退避时间”所指定的时间过去,否则您的调用将被拒绝而您仍需等待。

如果“存在更多页面”标记被设置为“否”,则表示没有更多有待检索的新事件。在这种情况下,您需要等待一段时间直至新事件出现。时间的长短由您决定,但需要注意的是:您必须至少等待“退避时间”所规定的时间过去,才能再次使用分页 Cookie。

3. 当您可以调用“获取更多”时,请使用之前调用“获取事件”或“获取更多”时返回的分页 Cookie。为方便起见,您不需要保留“使用期限”和“退避时间”字段,但“分页 Cookie”字段必须在没有被篡改的情况下传回到“获取更多”。与“获取事件”一样,“获取更多”也允许您为“每页事件数”指定一个值来限制每次调用中接收到的事件数量。

4. 返回步骤 2,处理“获取更多”返回的事件。只要您喜欢,可以重复对每个新分页 Cookie 调用“获取更多”并处理检索到的事件这个过程,您将不断地获取进入系统的新事件。

亚马逊官网原文详情:

Use Case for Event Notification Web Service

This use case can help you understand how to use the Event Notification Web Service (ENS). Although there may be other ways to use the ENS, this represents the most common use case and the method we recommend.

The first time your application starts, you will have retrieved no events and you will not have a storedPagingCookie. To retrieve your first "page" of events, callGetEventswith theEventTypeyou want and a combination ofStartDateandLimitthat fits your needs.

For example, you can use just theStartDateparameter to retrieve all the events since a particular date, or theLimitparameter to retrieve just a certain number of your latest events. Or you can combine the two to limit the number of events retrieved after a certain date. You can also provide theEventsPerPageparameter to specify how many events you would like to retrieve in each call to the service, or you can leave it out to allow ENS to decide how many events to send you.

ENS will respond with a set ofEventNotificationsfor theEventTypeyou specified. After you are done processing those events, store thePagingCookiesomewhere safe, since you will need it to pick up where you left off and retrieve additional events. If you are using a database to store event data, the best way to do this is to process and store all the events inside a database transaction, and then also store thePagingCookiein the same transaction context before committing the transaction. That way, if your application fails while processing a set of events, it can automatically roll back to your previousPagingCookieand there is no risk of losing or missing events.

If theMorePagesExistflag was set to "true," that means there are more new events waiting to be retrieved. In this case, you will probably want to callGetMoresoon to retrieve more events.

Note:You must still wait until any specifiedBackOffTimein thePagingCookiehas passed, otherwise your call will be rejected and you will have to wait.

If theMorePagesExistflag was set to "false," that means there are no more new events to be retrieved. In this case, you will want to wait for some period of time for new events to come in. That amount of time is up to you, but note that you must wait at least the amount of time specified inBackOffTimebefore using thePagingCookieagain.

When you are ready to callGetMore, use thePagingCookiereturned by your previous call toGetEventsorGetMore. For convenience, it is not necessary to preserve theTimeToLiveandBackOffTimefields, but thePagingCookiefield must be passed back toGetMorewithout being tampered with. LikeGetEvents,GetMorealso allows you to specify a value forEventsPerPageto limit the number of events you receive in each call.

Return to step 2 and process the events returned byGetMore. You can repeat this process of callingGetMorewith each newPagingCookieand processing events retrieved as long as you like, and you will continuously retrieve new events as they come into the system.

文章来源:亚马逊官方网站

如何使用亚马逊“事件通知 Web 服务”,使用 XML 管理亚马逊订单2——确认接收订单

使用 XML 管理亚马逊订单2——确认接收订单

确认接收订单 — 订单确认

描述

通过“订单确认”上传数据,您能够确认订单下载是否成功。确认上传数据还允许您提供自己的订单编号和订单商品编号,如果需要的话,可在之后用作相同订单的上传数据的参考。

此外,您可以在以下任意情况下利用该上传数据取消整个订单:

买家要求您取消订单(并且您还没有对订单进行配送)。

您接收到了一个单项商品订单,但您不能够对商品(已残损商品)进行配送。

您无法将订单上传到您的系统里面。

要取消订单,请使用失败状态代码。

词典

元素描述亚马逊订单编号亚马逊为订单提供的唯一编号,能够识别整个订单,无论订单中的单项商品数量是多少卖家订单编号由卖家提供的可选订单编号。亚马逊会将卖家订单编号映射到亚马逊订单编号上,之后您就可以对随后的有关订单的上传数据使用自己的订单编号(卖家订单编号)。第一步是在确认上传数据中建立卖家订单编号。查看基础 XSD 了解定义。状态代码允许您确认订单下载是否成功。状态代码要么是成功要么是失败。状态代码为失败时,可用于与亚马逊交流,表示在将订单集成到您的系统时遇到了问题或者您无法处理订单。您遇到配送方面的问题时不应当用该代码进行交流,例如库存里没有该商品。

发送“失败”的状态代码将会自动取消订单;买家也将不用为商品付账。

亚马逊订单商品编码亚马逊为订单内商品提供的唯一编号。如果卖家订单商品编号也被指定,则亚马逊将会对两个编号进行映射,并且对于与订单内商品相关的随后的上传数据,您可以利用自己的商品编号。查看基础 XSD 了解定义。卖家订单商品编号卖家为订单内商品提供的可选编号。如果卖家订单商品编号用亚马逊订单商品编码进行指定,则亚马逊将会对两个编号进行映射,对于与该订单商品相关的随后的上传数据,您可以利用自己的订单商品编号。查看基础 XSD 了解定义。取消原因仅在发送失败状态代码时使用。查看基础 XSD 了解枚举。

如何使用亚马逊“事件通知 Web 服务”,使用 XML 管理亚马逊订单2——确认接收订单