/**
 * 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 {
        $response = $service->listOrders($request);
        //print_r($response);
        if ($response->isSetListOrdersResult()) {
            $listOrdersResult = $response->getListOrdersResult();
            if ($listOrdersResult->isSetNextToken()) {
                $tokens = $listOrdersResult->getNextToken();
                $gg = 0;
                while (true) {
                    $request = new MarketplaceWebServiceOrders_Model_ListOrdersByNextTokenRequest();
                    $request->setSellerId(MERCHANT_ID);
                    $request->setNextToken($tokens);
                    $nexttokens = invokeListOrdersByNextToken($service, $request, $tokens);
                    if (strlen($nexttokens) >= 10) {
                        $nexttokens = invokeListOrdersByNextToken($service, $request, $nexttokens);
                        $tokens = $nexttokens;
                    } else {
                        break;
                    }
                    $gg++;
                    if ($gg >= 20) {
                        break;
                    }
                }
                echo '<br>' . $nexttokens . 'ggggggggggg';
            }
            if ($listOrdersResult->isSetOrders()) {
                $orders = $listOrdersResult->getOrders();
                $orderList = $orders->getOrder();
                foreach ($orderList as $order) {
                    $val = '';
                    if ($order->isSetSellerOrderId()) {
                        //         echo("                        SellerOrderId\n");
                        //         echo("                            " . $order->getSellerOrderId() . "\n");
                    }
                    if ($order->isSetPurchaseDate()) {
                        $CreatedDate = strtotime($order->getPurchaseDate());
                    }
                    if ($order->isSetLastUpdateDate()) {
                        $PaidTime = strtotime($order->getLastUpdateDate());
                    }
                    if ($order->isSetOrderStatus()) {
                        if ($order->getOrderStatus() == 'Unshipped') {
                            $orderstatus = 822;
                        }
                    }
                    //comment by andy 20130518
                    if ($order->isSetAmazonOrderId() && $orderstatus == '822') {
                        $val = $order->getAmazonOrderId();
                        $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest();
                        $request->setSellerId(MERCHANT_ID);
                        $request->setAmazonOrderId($val);
                        if ($val != '') {
                            invokeListOrderItems($service, $request, $val, $account);
                        }
                    }
                    if ($order->isSetFulfillmentChannel()) {
                        // echo("                        FulfillmentChannel\n");
                        // echo("                            " . $order->getFulfillmentChannel() . "\n");
                    }
                    if ($order->isSetSalesChannel()) {
                        //  echo("                        SalesChannel\n");
                        //  echo("                            " . $order->getSalesChannel() . "\n");
                    }
                    if ($order->isSetOrderChannel()) {
                        //  echo("                        OrderChannel\n");
                        //  echo("                            " . $order->getOrderChannel() . "\n");
                    }
                    if ($order->isSetShipServiceLevel()) {
                        //  echo("                        ShipServiceLevel\n");
                        //  echo("                            " . $order->getShipServiceLevel() . "\n");
                    }
                    $Street1 = '';
                    $Street2 = '';
                    $CityName = '';
                    $StateOrProvince = '';
                    if ($order->isSetShippingAddress()) {
                        $shippingAddress = $order->getShippingAddress();
                        if ($shippingAddress->isSetName()) {
                            $Name = mysql_escape_string($shippingAddress->getName());
                        }
                        if ($shippingAddress->isSetAddressLine1()) {
                            $Street1 = mysql_escape_string($shippingAddress->getAddressLine1());
                        }
                        if ($shippingAddress->isSetAddressLine2()) {
                            $Street2 = mysql_escape_string($shippingAddress->getAddressLine2());
                        }
                        if ($shippingAddress->isSetAddressLine3()) {
                            //    echo("                                " . $shippingAddress->getAddressLine3() . "\n");
                        }
                        if ($shippingAddress->isSetCity()) {
                            $CityName = mysql_escape_string($shippingAddress->getCity());
                        }
                        if ($shippingAddress->isSetCounty()) {
                            $CountryName = $shippingAddress->getCounty();
                        }
                        if ($shippingAddress->isSetDistrict()) {
                            //    echo("                                " . $shippingAddress->getDistrict() . "\n");
                        }
                        if ($shippingAddress->isSetStateOrRegion()) {
                            $StateOrProvince = $shippingAddress->getStateOrRegion();
                        }
                        if ($shippingAddress->isSetPostalCode()) {
                            $PostalCode = $shippingAddress->getPostalCode();
                        }
                        if ($shippingAddress->isSetCountryCode()) {
                            $Country = $shippingAddress->getCountryCode();
                        }
                        if ($shippingAddress->isSetPhone()) {
                            $Phone = $shippingAddress->getPhone();
                        }
                    }
                    if ($order->isSetOrderTotal()) {
                        $orderTotal = $order->getOrderTotal();
                        if ($orderTotal->isSetCurrencyCode()) {
                            $Currency = $orderTotal->getCurrencyCode();
                        }
                        if ($orderTotal->isSetAmount()) {
                            $AmountPaid = $orderTotal->getAmount();
                        }
                    }
                    if ($order->isSetNumberOfItemsShipped()) {
                        // echo("                            " . $order->getNumberOfItemsShipped() . "\n");
                    }
                    if ($order->isSetNumberOfItemsUnshipped()) {
                        //  echo("                            " . $order->getNumberOfItemsUnshipped() . "\n");
                    }
                    if ($order->isSetPaymentExecutionDetail()) {
                        $paymentExecutionDetail = $order->getPaymentExecutionDetail();
                        $paymentExecutionDetailItemList = $paymentExecutionDetail->getPaymentExecutionDetailItem();
                        foreach ($paymentExecutionDetailItemList as $paymentExecutionDetailItem) {
                            // echo("                            PaymentExecutionDetailItem\n");
                            if ($paymentExecutionDetailItem->isSetPayment()) {
                                //  echo("                                Payment\n");
                                $payment = $paymentExecutionDetailItem->getPayment();
                                if ($payment->isSetCurrencyCode()) {
                                    // echo("                                    CurrencyCode\n");
                                    // echo("                                        " . $payment->getCurrencyCode() . "\n");
                                }
                                if ($payment->isSetAmount()) {
                                    //  echo("                                    Amount\n");
                                    // echo("                                        " . $payment->getAmount() . "\n");
                                }
                            }
                            if ($paymentExecutionDetailItem->isSetSubPaymentMethod()) {
                                //  echo("                                SubPaymentMethod\n");
                                //  echo("                                    " . $paymentExecutionDetailItem->getSubPaymentMethod() . "\n");
                            }
                        }
                    }
                    if ($order->isSetPaymentMethod()) {
                        //echo("                        PaymentMethod\n");
                        //echo("                            " . $order->getPaymentMethod() . "\n");
                    }
                    if ($order->isSetMarketplaceId()) {
                        //echo("                        MarketplaceId\n");
                        // echo("                            " . $order->getMarketplaceId() . "\n");
                    }
                    if ($order->isSetBuyerEmail()) {
                        //   echo("                        BuyerEmail\n");
                        //    echo("                            " . $order->getBuyerEmail() . "\n");
                        $Email = $order->getBuyerEmail();
                    }
                    if ($order->isSetBuyerName()) {
                        $UserID = mysql_escape_string($order->getBuyerName());
                    }
                    if ($order->isSetShipmentServiceLevelCategory()) {
                        //echo("                        ShipmentServiceLevelCategory\n");
                        // echo("                            " . $order->getShipmentServiceLevelCategory() . "\n");
                    }
                    $addrecordnumber = $val;
                    $Country_q = countryname_change($Country);
                    $sql = "INSERT INTO `ebay_order` (`ebay_paystatus`,`ebay_ordersn` ,`ebay_tid` ,`ebay_ptid` ,`ebay_orderid` ,";
                    $sql .= "`ebay_createdtime` ,`ebay_paidtime` ,`ebay_userid` ,`ebay_username` ,`ebay_usermail` ,`ebay_street` ,";
                    $sql .= "`ebay_street1` ,`ebay_city` ,`ebay_state` ,`ebay_couny` ,`ebay_countryname` ,`ebay_postcode` ,`ebay_phone`";
                    $sql .= " ,`ebay_currency` ,`ebay_total` ,`ebay_status`,`ebay_user`,`ebay_shipfee`,`ebay_account`,`recordnumber`,`ebay_addtime`,`ebay_note`,`ebay_site`,`eBayPaymentStatus`,`PayPalEmailAddress`,`ShippedTime`,`RefundAmount`,`ebay_warehouse`,`order_no`)VALUES ('Complete','{$val}', '{$tid}' , '{$ptid}' , '{$orderid}' , '{$CreatedDate}' , '{$PaidTime}' , '{$UserID}' ,";
                    $sql .= " '{$Name}' , '{$Email}' , '{$Street1}' , '{$Street2}' , '{$CityName}','{$StateOrProvince}' , '{$Country}' , '{$Country_q}' , '{$PostalCode}' , '{$Phone}' , '{$Currency}' , '{$AmountPaid}' , '{$orderstatus}','{$user}','{$shipingfee}','{$account}','{$addrecordnumber}','{$mctime}','{$BuyerCheckoutMessage}','{$site}','{$eBayPaymentStatus}','{$PayPalEmailAddress}','{$ShippedTime}','{$RefundAmount}','{$defaultstoreid}','{$order_no}')";
                    $sg = "select * from ebay_order where ebay_ordersn ='{$val}' ";
                    $sg = $dbcon->execute($sg);
                    $sg = $dbcon->getResultArray($sg);
                    if (count($sg) == 0) {
                        $dbcon->execute($sql);
                        addLog("ordersn:{$val} 添加成功。");
                    } else {
                        addLog("ordersn:{$val} 在数据库中已经存在。");
                    }
                }
            }
        }
        //print_r($response);exit;
    } catch (MarketplaceWebServiceOrders_Exception $ex) {
        echo "Caught Exception: " . $ex->getMessage() . "\n";
        echo "Response Status Code: " . $ex->getStatusCode() . "\n";
        echo "Error Code: " . $ex->getErrorCode() . "\n";
        echo "Error Type: " . $ex->getErrorType() . "\n";
        echo "Request ID: " . $ex->getRequestId() . "\n";
        echo "XML: " . $ex->getXML() . "\n";
        print_r($ex);
    }
}
 * Responses are loaded from local XML files. You can tweak XML files to
 * experiment with various outputs during development
 *
 * XML files available under MarketplaceWebServiceOrders/Mock tree
 *
 ***********************************************************************/
// $service = new MarketplaceWebServiceOrders_Mock();
/************************************************************************
 * Setup request parameters and uncomment invoke to try out
 * sample for List Orders By Next Token Action
 ***********************************************************************/
// @TODO: set request. Action can be passed as Orders_Model_ListOrdersByNextToken
$request = new \Amazon\MWS\Orders\Model\Orders_Model_ListOrdersByNextTokenRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeListOrdersByNextToken($service, $request);
/**
 * Get List Orders By Next Token Action Sample
 * Gets competitive pricing and related information for a product identified by
 * the MarketplaceId and ASIN.
 *
 * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface
 * @param mixed $request Orders_Model_ListOrdersByNextToken or array of parameters
 */
function invokeListOrdersByNextToken(MarketplaceWebServiceOrders_Interface $service, $request)
{
    try {
        $response = $service->ListOrdersByNextToken($request);
        echo "Service Response\n";
        echo "=============================================================================\n";
        $dom = new \DOMDocument();