Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Amazon MWS ListOrders使用不同的货币/时区误导订单_Php_Amazon Web Services_Amazon Mws - Fatal编程技术网

Php Amazon MWS ListOrders使用不同的货币/时区误导订单

Php Amazon MWS ListOrders使用不同的货币/时区误导订单,php,amazon-web-services,amazon-mws,Php,Amazon Web Services,Amazon Mws,我正在使用ListOrdersAPI从Amazon商店获取订单 我已将时区设置为欧洲/伦敦 但listorders api中缺少一些订单,这些订单使用不同的货币(欧元),可能来自不同的国家(西班牙) 所有货币为英镑的订单均按api列出。我也试着将时区改为欧洲/马德里,但这些订单仍然没有列出。 原因可能是什么?请帮忙 谢谢我刚刚将此方法添加到我的Amazon Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedA

我正在使用ListOrdersAPI从Amazon商店获取订单

我已将时区设置为欧洲/伦敦

但listorders api中缺少一些订单,这些订单使用不同的货币(欧元),可能来自不同的国家(西班牙)

所有货币为英镑的订单均按api列出。我也试着将时区改为欧洲/马德里,但这些订单仍然没有列出。 原因可能是什么?请帮忙


谢谢

我刚刚将此方法添加到我的Amazon Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedAfter date和MarketPlaceID,所有其他字段都不是必填字段

public function getOrderList()
    {
        $this->config['ServiceURL'] = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
        $this->serviceURL = "https://mws-eu.amazonservices.com/Orders/2013-09-01";

        $service = new MarketplaceWebServiceOrders_Client($this->aws_access_key, $this->aws_secret_access_key, $this->application_name, $this->application_version, $this->config);

        $request = new \MarketplaceWebServiceOrders_Model_ListOrdersRequest();
        $request->setSellerId($this->seller_id);
        $request->setMarketplaceId($this->marketplace_id);
        $request->setCreatedAfter(date('Y-m-d\TH:i:s\Z', strtotime('-49 hours')));
        //new DateTime('-7 Days', new DateTimeZone('UTC'))


        try
        {
            $response = $service->ListOrders($request);

            echo ("Service Response\n");
            echo ("=============================================================================\n");

            $dom = new DOMDocument();
            $dom->loadXML($response->toXML());
            $dom->preserveWhiteSpace = false;
            $dom->formatOutput = true;
            echo $dom->saveXML();
            echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
        }
        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");
            echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
        }
    }

我刚刚将这个方法添加到Amazon Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedAfter date和MarketPlaceID,所有其他字段都不是必填字段

public function getOrderList()
    {
        $this->config['ServiceURL'] = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
        $this->serviceURL = "https://mws-eu.amazonservices.com/Orders/2013-09-01";

        $service = new MarketplaceWebServiceOrders_Client($this->aws_access_key, $this->aws_secret_access_key, $this->application_name, $this->application_version, $this->config);

        $request = new \MarketplaceWebServiceOrders_Model_ListOrdersRequest();
        $request->setSellerId($this->seller_id);
        $request->setMarketplaceId($this->marketplace_id);
        $request->setCreatedAfter(date('Y-m-d\TH:i:s\Z', strtotime('-49 hours')));
        //new DateTime('-7 Days', new DateTimeZone('UTC'))


        try
        {
            $response = $service->ListOrders($request);

            echo ("Service Response\n");
            echo ("=============================================================================\n");

            $dom = new DOMDocument();
            $dom->loadXML($response->toXML());
            $dom->preserveWhiteSpace = false;
            $dom->formatOutput = true;
            echo $dom->saveXML();
            echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
        }
        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");
            echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
        }
    }

如果您提交一些用于OrderAPI的代码,我可以帮助您。尽管改变时区不会有任何区别。如果要获取的订单超过100个,那么您必须使用ListOrdersByNextToken来获取接下来的100个订单,这可能就是您无法获取其他订单的原因。此外,这些订单在已获取订单列表的中间位置缺失。i、 e.在api中获取这些遗漏订单之前和之后的订单。我正在使用代码形式“ListOrdersSample.php”,我正在传递$request->setCreatedAfter($start\u time)$请求->setCreatedBefore($end_time);好的,我也不能帮你,除非你发布一些关于你的问题的代码。以下是我正在使用的代码:(我试图把它包括在``中,但结果是纯文本)
date\u default\u timezone\u set('欧洲/伦敦')$开始时间=日期('Y-m-d\TH:i:s\Z',标准时间('-49小时')$结束时间=日期('Y-m-d\TH:i:s\Z',标准时间('-62分钟')$请求->设置创建时间($start\u time)$请求->setCreatedBefore($end_time);调用存储程序($service,$request);函数invokeListOrders(MarketplaceWebServiceOrders_接口$service,$request){$response=$service->ListOrders($request);print_r($response);}
我没有答案,但我正在学习-当我提交mws订单请求时,其中一个标准是订单何时“创建”与何时“修改”。我注意到,对于一些订单,它们被认为是“创建的”,但因为它们仍然是“待定的”,它们实际上还不是真正的订单,将被发送。因此,当我运行另一个“修改”订单请求时,我丢失的订单进来了。所以我认为在这种情况下,这些订单被“修改”,不再挂起,因此是完整的订单。如果您提交一些用于订单api的代码,我可以帮助您。尽管改变时区不会有任何区别。如果要获取的订单超过100个,那么您必须使用ListOrdersByNextToken来获取接下来的100个订单,这可能就是您无法获取其他订单的原因。此外,这些订单在已获取订单列表的中间位置缺失。i、 e.在api中获取这些遗漏订单之前和之后的订单。我正在使用代码形式“ListOrdersSample.php”,我正在传递$request->setCreatedAfter($start\u time)$请求->setCreatedBefore($end_time);好的,我也不能帮你,除非你发布一些关于你的问题的代码。以下是我正在使用的代码:(我试图把它包括在``中,但结果是纯文本)
date\u default\u timezone\u set('欧洲/伦敦')$开始时间=日期('Y-m-d\TH:i:s\Z',标准时间('-49小时')$结束时间=日期('Y-m-d\TH:i:s\Z',标准时间('-62分钟')$请求->设置创建时间($start\u time)$请求->setCreatedBefore($end_time);调用存储程序($service,$request);函数invokeListOrders(MarketplaceWebServiceOrders_接口$service,$request){$response=$service->ListOrders($request);print_r($response);}
我没有答案,但我正在学习-当我提交mws订单请求时,其中一个标准是订单何时“创建”与何时“修改”。我注意到,对于一些订单,它们被认为是“创建的”,但因为它们仍然是“待定的”,它们实际上还不是真正的订单,将被发送。因此,当我运行另一个“修改”订单请求时,我丢失的订单进来了。因此,我认为在这种情况下,这些订单被“修改”,不再未决,因此是完整的订单。