php - 亚马逊 MWS (PHP) - 请求如何工作

标签 php amazon-mws

我正尝试在 PHP 中提取活跃列表的报告。

我取得了进步,但是,我无法理解它是如何工作的,也没有任何东西可以解释它。

例如,在 PHP 库提供的示例中,我看到了相当多的 XML 文件。当您运行 RequestReportResponse 示例时,它会生成 XML 文件,还是 XML 文件会根据值和函数告诉 RequestReportResponse 要做什么?

我问是因为,使用 MWS Scratchpad - 我选择了所有必要的字段,提交它然后刷新我的卖家中心部分的亚马逊报告页面,它显示了待处理的报告。

我只是想问 XML 内容如何影响报告或报告如何影响 XML。

最佳答案

您的问题的答案分为两部分。

第 1 部分 - 调用亚马逊 API

大多数 MWS 请求不需要向亚马逊发送任何文件(无论是纯文本还是 XML)。例如,发送 RequestReport 所需的所有参数都可以(而且必须)作为常规参数发送。我不确定如果您提交文件时亚马逊会怎么做,因为我从未尝试过。但话又说回来......你为什么会这样?

确实需要发送文件的调用之一是 SubmitFeed 调用,其中该文件是要提交的实际提要。这取决于您提交的 Feed 类型,亚马逊希望它是纯文本还是 XML。

第 2 部分 - 处理亚马逊的 API 响应

当您从 Amazon 的 API 获取返回信息时,它通常是 XML 格式(有一些调用可能会返回纯文本)。您将需要解码此数据以获取您的信息。

为了更清楚一点,我将为您概述一个典型的过程:

从亚马逊获取所有列表的过程:

  1. 对 Amazon 执行 RequestReport 调用。没有附加 XML
  2. 解码您返回的 XML(它是一个 RequestReportResponse)。如果一切顺利,您将收到一个 RequestReportId 作为响应的一部分,Amazon 将开始处理您的请求。

    亚马逊可能需要几分钟来实际创建报告,在非常复杂或大量请求的情况下,或者在事件高峰期,它实际上可能需要长达一个小时或更长时间。所以我们需要找出我们提出的请求何时真正完成。

  3. 使用 GetReportRequestList 调用 Poke Amazon API,询问您使用 ReportRequestIdList.Id.1={YourRequestIdHere} 请求的状态。这也不需要 XML 附件。

  4. 解码您返回的 XML。 (这是一个 GetReportRequestListResponse)

    如果它的 ReportProcessingStatus 不是 _DONE_,等待至少 45 秒,然后从第 3 步开始重复。如果报告确实完成,您将看到一个有效的响应中的 GeneratedReportId。如果它丢失了,您将需要执行额外的 GetReportList 调用以查找其 ID。

  5. 调用 GetReport 以使用 ReportId={YourGeneratedReportIdHere} 最终获取您的报告

  6. 解码您返回的任何内容。根据您请求的报告类型,响应可能是 XML 或纯文本。

    此过程在 Amazon Marketplace Web Service Reports API Section Reference (Version 2009-01-01) 中有详细说明(并带有漂亮的流程图)

最后回答您有关从亚马逊 MWS 获取有效列表的问题: 这三个调用都不需要您发送 XML 到 Amazon。您从 Amazon 收到的数据将采用 XML 格式(如果您请求纯文本报告,则第 6 步可能会异常(exception))。

关于php - 亚马逊 MWS (PHP) - 请求如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346288/

相关文章:

python - 如何解析此报告制表符分隔的响应?亚马逊 MWS

javascript - PHP AJAX 发布/获取

javascript - 如何让jquery选择选项

php - 从 "mysql_query"的结果中计算行数

javascript - 使用 Google 脚本的 MWS 发布请求

c# - 连接到亚马逊商城网络服务

php - 如何使用 PHPExcel 选择保存文件 excel 的位置

PHP system() 使用 MySQL 在许多数据库上运行查询

amazon-web-services - 通过 API 确定您是在 "BuyBox"还是特色商家

amazon-mws - 如何通过ASIN列出亚马逊订单