示例#1
0
 /**
  * 抓取一段时间内的订单
  * @param datetime $starttime
  * @param datetime $endtime
  * @return array
  * @author lzx
  */
 public function getOrderLists($starttime, $endtime)
 {
     $allResponse = array();
     $service = new MarketplaceWebServiceOrders_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION_NAME, APPLICATION_VERSION, $this->config);
     $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest();
     $request->setSellerId(MERCHANT_ID);
     $request->setMarketplaceId(MARKETPLACE_ID);
     $request->setCreatedAfter($starttime);
     $request->setCreatedBefore($endtime);
     $request->setOrderStatus(array("Unshipped", "PartiallyShipped"));
     $request->setMaxResultsPerPage(100);
     $response = $service->listOrders($request);
     $listOrdersResult = $response->getListOrdersResult();
     $allResponse[] = $listOrdersResult;
     #########################   分页抓取剩下的分页   start  ####################################
     $while_index = 0;
     while ($listOrdersResult->isSetNextToken()) {
         $request = new MarketplaceWebServiceOrders_Model_ListOrdersByNextTokenRequest();
         $request->setSellerId(MERCHANT_ID);
         $request->setNextToken($listOrdersResult->getNextToken());
         $response = $service->ListOrdersByNextToken($request);
         $listOrdersResult = $response->getListOrdersByNextTokenResult();
         $allResponse[] = $listOrdersResult;
         //ListOrders 和 ListOrdersByNextToken 操作的最大请求限额为 6 个防止意外循环
         if ($while_index % 5 == 4) {
             sleep(61);
             //恢复速度1分钟
         }
         //容错机制, 异常后自动弹出
         if ($while_index > 50) {
             break;
         }
         $while_index++;
     }
     #########################   分页抓取剩下的分页   end   ####################################
     return $allResponse;
 }