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

mut*_*nch 4 php amazon-mws

我试图在PHP中为活动列表提取报告.

我已经取得了进步,但是,我无法理解它是如何工作的,并且没有任何东西可以解释它.

例如,在PHP库提供的示例中,我看到了很多XML文件.运行RequestReportResponse示例时,是否会生成XML文件,或者XML文件RequestReportResponse是否根据值和函数告知要执行的操作?

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

我只是询问XML内容如何影响报告或报告如何影响XML.

Haz*_*zit 13

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

第1部分 - 调用Amazon API

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

其中一个需要发送文件的SubmitFeed调用是调用,其中该文件是要提交的实际提要.如果亚马逊希望它是纯文本或XML,则取决于您提交的Feed类型.

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

当您从亚马逊的API获取信息时,它通常采用XML格式(有一些调用可能会返回纯文本).您需要解码此数据才能获取信息.

为了使它更清晰,我将概述一个典型的过程:

从亚马逊获取所有商家信息的过程:

  1. 做一个RequestReport亚马逊呼叫.没有附加XML
  2. 解码您正在获取的XML(它是一个RequestReportResponse).如果一切顺利,您将获得RequestReportId响应的一部分,亚马逊将开始处理您的请求.

    亚马逊可能需要几分钟才能真正创建报告,如果是非常复杂或大的请求,或者在高活动时间内,实际上可能需要一个小时或更长时间.所以我们需要找出我们提出的请求何时实际完成.

  3. 通过GetReportRequestList电话询问Amazon API,询问您的请求状态ReportRequestIdList.Id.1={YourRequestIdHere}.这也不需要XML附件.

  4. 解码您正在获取的XML.(这是一个GetReportRequestListResponse)

    如果ReportProcessingStatus不是_DONE_,请等待至少45秒,然后从步骤3开始重复.如果报告实际完成,您将GeneratedReportId在响应中看到有效.如果丢失,您需要额外GetReportList调用以查找其ID.

  5. 致电GetReport最终获取您的报告ReportId={YourGeneratedReportIdHere}

  6. 解码你得到的任何东西.根据您请求的报告类型,响应可能是XML或纯文本.

    亚马逊商城网络服务报告API部分参考(版本2009-01-01)中详细解释了此过程(并使用漂亮的流程图)

最后回答有关从亚马逊MWS获取活动列表的问题:三个呼叫都不需要您将XML发送到亚马逊.您从亚马逊收到的数据将采用XML格式(如果您请求纯文本报告,则可能是例外步骤6).