2017-08-17 150 views
0

我正在向亞馬遜MWS訂單API發出curl請求以獲取ListOrders,然後使用foreach循環遍歷xml響應並在html表中輸出響應。使用NextToken循環訪問亞馬遜MWS訂單API PHP

但是,根據亞馬遜MWS訂單API,它只能在一個請求中返回100個結果並獲得更多結果我需要通過使用其他參數NextToken來獲得另一個curl請求,該請求從前一個請求的最後響應中獲得,然後將返回接下來的100個訂單等等,直到沒有更多的NextToken可用。

所以我的問題是我如何迭代到一次又一次的NextToken請求的新的響應,並在html表中打印響應,直到沒有更多的NextToken可用?

+0

嘗試使用亞馬遜的報告API與報告類型 「_GET_FLAT_FILE_ORDERS_DATA_」 拿到訂單數據,你不必尋找下一個令牌。 –

+0

https://github.com/keyur-padalia/Amazon-API-Helper-Class/blob/master/AmazonAPIs/amazon_report_helper.class.inc –

+0

謝謝@Keyur我得到了平面文件,但我有幾個問題 - 1.如何操縱這個平面文件的響應。假設我想存儲在mysql數據庫中? 2.我無法選擇時間框表示從何時到何時該報告是?這是真的嗎? –

回答

0

這是我用來將報告的csv響應轉換爲數組以保存到數據庫中。

$report_listing = explode("\n", $report_data["report_data"]); 
$orders_list = ''; 

$i = 0; 
$headers = ''; 
// Building an Associative array of CSV report 
foreach($report_listing as $listing) 
{ 
    if($i == 0) 
    { 
     $headers = explode("\t", trim($listing)); 
    } 
    else 
    { 
     $csv_data = explode("\t", $listing); 
     if(!isset($csv_data[1])) 
      continue; 
     foreach($headers as $key => $index) 
     { 
      $orders_list[$i - 1][$index] = $csv_data[$key]; 
     } 
    } 
    $i++; 
} 

$new_order = array(); 

// Combining order items into one order array 
foreach($orders_list as $orders) 
{ 
    $new_order[$orders['amazon-order-id']][] = $orders; 
} 
+0

好吧將嘗試... –

+0

@OrientDevelopers如果它的工作,請評價我的答案或接受我的回答 –

+0

其實我想要實時訂單數據意味着每當有一個訂單我的應用程序應該獲取數據在後臺和存儲在分貝。這個平面文件能幫助我實現嗎? –