使用NextToken循环访问亚马逊MWS订单API PHP

问题描述:

我正在向亚马逊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.我无法选择时间框表示从何时到何时该报告是?这是真的吗? –

这是我用来将报告的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

其实我想要实时订单数据意味着每当有一个订单我的应用程序应该获取数据在后台和存储在分贝。这个平面文件能帮助我实现吗? –

报告响应也是XML格式

对于那些谁仍在挣扎,希望有一个简单的方法来获取订单数据的即时拍摄。请使用亚马逊MWS报告API,并要求使用报告 -

REPORTTYPE: _GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_

欲了解更多信息请参阅 https://docs.developer.amazonservices.com/en_UK/reports/Reports_ReportType.html