public function test() { $this->load->config('config_mws_api'); $amazon_app = $this->config->item('amazon_app'); //var_dump($amazon_app); foreach ($amazon_app as $amazon) { $serviceUrl = $amazon['serviceUrl']; $amazon_api = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3); $all_order_id = array(); $service = new MarketplaceWebServiceOrders_Client($amazon['AWS_ACCESS_KEY_ID'], $amazon['AWS_SECRET_ACCESS_KEY'], $this->config->item('APPLICATION_NAME'), $this->config->item('APPLICATION_VERSION'), $amazon_api); $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); $request->setSellerId($amazon['MERCHANT_ID']); //$request->setCreatedAfter(new DateTime('2012-12-17 00:00:00', new DateTimeZone('UTC'))); $beginning_time = $this->order_model->get_amazon_import_beginning_time(); $end_time = date('Y-m-d H:i:s', mktime(substr($beginning_time, 11, 2) + 24, substr($beginning_time, 14, 2), substr($beginning_time, 17, 2), substr($beginning_time, 5, 2), substr($beginning_time, 8, 2), substr($beginning_time, 0, 4))); $startdate = strtotime($end_time); $enddate = strtotime(str_replace("Z", "", str_replace("T", " ", get_utc_time('-20 minutes')))); if ($enddate - $startdate <= 0) { $end_time = get_utc_time('-20 minutes'); } $end_time = str_replace("Z", "", str_replace("T", " ", $end_time)); echo "beginning_time[utc]:" . $beginning_time; echo "end_time[utc]:" . $end_time; //die(); //$request->setLastUpdatedAfter(new DateTime('2013-01-21 08:43:14', new DateTimeZone('UTC'))); //$request->setLastUpdatedBefore(new DateTime('2013-01-21 11:10:25', new DateTimeZone('UTC'))); $request->setLastUpdatedAfter(new DateTime($beginning_time, new DateTimeZone('UTC'))); $request->setLastUpdatedBefore(new DateTime($end_time, new DateTimeZone('UTC'))); $orderStatuses = new MarketplaceWebServiceOrders_Model_OrderStatusList(); $orderStatuses->setStatus(array('Unshipped', 'PartiallyShipped')); $request->setOrderStatus($orderStatuses); $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList(); $marketplaceIdList->setId(array($amazon['MARKETPLACE_ID'])); $request->setMarketplaceId($marketplaceIdList); $orderids = $this->invokeListOrders($service, $request); $all_order_id = $orderids[1]; //var_dump($orderids);die(); $next_token = $orderids[0]; while ($next_token != '') { $request = new MarketplaceWebServiceOrders_Model_ListOrdersByNextTokenRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setNextToken($orderids[0]); $orderids = $this->invokeListOrdersByNextToken($service, $request); $next_token = $orderids[0]; $all_order_id = array_merge($all_order_id, $orderids[1]); //var_dump($orderids); } //var_dump($all_order_id); foreach ($all_order_id as $order_id) { $order_info = array(); $items = array(); $data = array(); $amazon_pdf_data = array(); $amazon_ack_failed_data = array(); $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setAmazonOrderId(array($order_id)); // object or array of parameters $order_info = $this->invokeGetOrder($service, $request); //var_dump($order_info); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setAmazonOrderId($order_id); // object or array of parameters $items = $this->invokeListOrderItems($service, $request); //var_dump($items); if (!isset($order_info['AmazonOrderId'])) { $this->log_report($order_id); $amazon_ack_failed_data = array('amazonorderid' => $order_id, 'sellerid' => $amazon['MERCHANT_ID']); if (!$this->order_model->check_amazon_ack_failed_exists($order_id)) { $this->order_model->add_amazon_ack_failed($amazon_ack_failed_data); } continue; } $data = $this->_make_common_order_list_data($order_info, $items); //var_dump($data); if ($this->order_model->check_exists('order_list', array('transaction_id' => $data['transaction_id']))) { echo $data['transaction_id'] . "存在\n"; /* $invoice_begin=2372; $invoice_id=$invoice_begin+$this->order_model->fetch_all_amazon_count()+1; $amazon_pdf_data=array( 'amazonorderid'=>$order_info['AmazonOrderId'], 'sellerid'=>$amazon['MERCHANT_ID'], 'invoice_id'=>$invoice_id, ); if(!$this->order_model->check_wait_create_amazon_pdf_exists($order_id)) { $this->order_model->add_wait_create_amazon_pdf($amazon_pdf_data); }*/ } else { $this->order_model->add_order($data); $invoice_begin = 2372; $invoice_id = $invoice_begin + $this->order_model->fetch_all_amazon_count() + 1; $amazon_pdf_data = array('amazonorderid' => $order_info['AmazonOrderId'], 'sellerid' => $amazon['MERCHANT_ID'], 'invoice_id' => $invoice_id); if (!$this->order_model->check_wait_create_amazon_pdf_exists($order_id) && $order_info['AmazonOrderId'] != '') { $this->order_model->add_wait_create_amazon_pdf($amazon_pdf_data); } echo $data['transaction_id'] . "保存成功\n"; } sleep(2); } $this->order_model->update_amazon_import_beginning_time(array('value' => $end_time)); } }