示例#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;
 }
    $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList();
    $marketplaceIdList->setId(array(MARKETPLACE_ID));
    $request->setMarketplaceId($marketplaceIdList);
    $orderStatuses = new MarketplaceWebServiceOrders_Model_OrderStatusList();
    $orderStatuses->setStatus(array('Unshipped', 'PartiallyShipped'));
    $request->setOrderStatus($orderStatuses);
    $start = date("Y-m-d H:i:s", $interval_start);
    $end = date("Y-m-d H:i:s", $interval_end);
    $astart = date('Y-m-d', strtotime($start)) . " " . date('H:i:s', strtotime($start));
    $aend = date('Y-m-d', strtotime($end)) . " " . date('H:i:s', strtotime($end));
    $interval_start = $interval_end;
    $interval_end = strtotime($interval_time, $interval_end);
    echo $astart . '<br>';
    echo $aend;
    $request->setCreatedAfter(new DateTime($astart, new DateTimeZone('UTC')));
    $request->setCreatedBefore(new DateTime($aend, new DateTimeZone('UTC')));
    $errorstatus = invokeListOrders($service, $request);
    echo '$errorstatus:' . $errorstatus . "<br><br>";
}
echo "finish";
/**
 * List Orders Action Sample
 * ListOrders can be used to find orders that meet the specified criteria.
 *   
 * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface
 * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrders or array of parameters
 */
function invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request)
{
    global $user, $account, $dbcon, $defaultstoreid;
    try {
 *
 * XML files available under MarketplaceWebServiceOrders/Mock tree
 *
 ***********************************************************************/
// $service = new MarketplaceWebServiceOrders_Mock();
/************************************************************************
 * Setup request parameters and uncomment invoke to try out 
 * sample for List Orders Action
 ***********************************************************************/
$request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest();
$request->setSellerId(MERCHANT_ID);
if ($user === 'amdd99') {
    // List all orders udpated after a certain date
    if (count(explode(" ", $start)) == 2 && count(explode(" ", $end)) == 2) {
        $request->setCreatedAfter(new DateTime($start, new DateTimeZone('UTC')));
        $request->setCreatedBefore(new DateTime($end, new DateTimeZone('UTC')));
    } else {
        $request->setCreatedAfter(new DateTime($start . ' 00:00:00', new DateTimeZone('UTC')));
        $request->setCreatedBefore(new DateTime($end . ' 23:59:59', new DateTimeZone('UTC')));
    }
    echo $start . '-----' . $end;
    // Set the marketplaces queried in this ListOrdersRequest
    $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList();
    $marketplaceIdList->setId(array(MARKETPLACE_ID));
    $request->setMarketplaceId($marketplaceIdList);
    invokeListOrders($service, $request);
} else {
    $start = date('Y-m-d H:i:s', strtotime('-0 hour', strtotime($start)));
    $end = date('Y-m-d H:i:s', strtotime('-0 hour', strtotime($end)));
    $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList();
    $marketplaceIdList->setId(array(MARKETPLACE_ID));