簡體   English   中英

亞馬遜MWS(PHP) - 請求如何工作

[英]Amazon MWS (PHP) - How does the request work

我試圖在PHP中為活動列表提取報告。

我已經取得了進步,但是,我無法理解它是如何工作的,並且沒有任何東西可以解釋它。

例如,在PHP庫提供的示例中,我看到了很多XML文件。 當您運行RequestReportResponse示例時,是否會生成XML文件,或者XML文件是否根據值和函數告訴RequestReportResponse要執行的操作?

我問,因為,使用MWS Scratchpad - 我選擇所有必要的字段,提交它然后刷新我的賣家中心部分的亞馬遜報告頁面,它顯示一個待處理的報告。

我只是詢問XML內容如何影響報告或報告如何影響XML。

您的問題的答案分為兩部分。

第1部分 - 調用Amazon API

大多數MWS請求不需要將任何文件(無論是純文本還是XML)發送到亞馬遜。 例如,發送RequestReport所需的所有參數都可以(並且必須)作為常規參數發送。 如果你提交了一個文件,我不確定亞馬遜會做什么,因為我從未嘗試過。 但話又說回來......你為什么這樣?

其中一個需要發送文件的調用是SubmitFeed調用,其中該文件是要提交的實際提要。 如果亞馬遜希望它是純文本或XML,則取決於您提交的Feed類型。

第2部分 - 處理亞馬遜的API響應

當您從Amazon的API獲取信息時,它通常采用XML格式(有一些調用可能會返回純文本)。 您需要解碼此數據才能獲取信息。

為了使它更清晰,我將概述一個典型的過程:

從亞馬遜獲取所有商家信息的過程:

  1. 對Amazon進行RequestReport調用。 沒有附加XML
  2. 解碼您正在獲取的XML(它是RequestReportResponse )。 如果一切順利,您將獲得RequestReportId作為響應的一部分,亞馬遜將開始處理您的請求。

    亞馬遜可能需要幾分鍾才能真正創建報告,如果是非常復雜或大的請求,或者在高活動時間內,實際上可能需要一個小時或更長時間。 所以我們需要找出我們提出的請求何時實際完成。

  3. 使用GetReportRequestList調用Poke Amazon API,使用ReportRequestIdList.Id.1={YourRequestIdHere}詢問您的請求的狀態。 這也不需要XML附件。

  4. 解碼您正在獲取的XML。 (它是一個GetReportRequestListResponse

    如果其ReportProcessingStatus不是_DONE_ ,請等待至少45秒,然后從步驟3開始重復。如果報告實際完成,您將在響應中看到有效的GeneratedReportId 如果缺少,則需要執行額外的GetReportList調用以查找其ID。

  5. 使用ReportId={YourGeneratedReportIdHere}調用GetReport以最終獲取您的報告

  6. 解碼你得到的任何東西。 根據您請求的報告類型,響應可能是XML或純文本。

    亞馬遜商城網絡服務報告API部分參考(版本2009-01-01)中詳細解釋了此過程(並使用漂亮的流程圖

最后回答有關從亞馬遜MWS獲取活動列表的問題:三個呼叫都不需要您將XML發送到亞馬遜。 從亞馬遜收到的數據將采用XML格式(如果您請求純文本報告,則可能是例外步驟6)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM