我在使用带有 PHP 的亚马逊 MWS API 检索已处理提要文件的结果时遇到问题。准确地说,我正在使用 getFeedSubmissionResult 类。问题是,当我按照文档的指示使用 API 时,没有我可以访问的类读取的相关数据(或者看起来如此)。所以我的问题是:我如何检索亚马逊发回的原始 XML 文件并将其存储到我计算机上的文件中?
我一直在追溯 MWS 使用的代码,并试图找到他们从亚马逊提取 XML 文件的位置并对其进行解析以尝试将其保存到一个文件中,但没有成功。如果有人可以指导我解决此问题,我将不胜感激,如果没有,那么解决方法可能会更好。
所以这就是我一直在做的事情:
我使用了 MWS 示例中提供的 getFeedSubmissionResultSample.php。据说,这应该给我数据,告诉我处理了多少项目以及成功处理了多少项目。但事实并非如此。所以我尝试对响应变量进行 print_r :
function invokeGetFeedSubmissionResult(MarketplaceWebService_Interface $service,$request) {
try {
$response = $service->getFeedSubmissionResult($request);
echo "<br />Var dump here: <pre>";
print_r($response);
echo ("<pre>Service Response\n");
echo ("=============================================================================\n");
echo(" GetFeedSubmissionResultResponse\n");
if ($response->isSetGetFeedSubmissionResultResult()) {
$getFeedSubmissionResultResult = $response->getGetFeedSubmissionResultResult();
echo (" GetFeedSubmissionResult\n");
if ($getFeedSubmissionResultResult->isSetContentMd5()) {
echo (" ContentMd5\n");
echo (" " . $getFeedSubmissionResultResult->getContentMd5() . "\n");
}
}
if ($response->isSetResponseMetadata()) {
echo(" ResponseMetadata\n");
$responseMetadata = $response->getResponseMetadata();
if ($responseMetadata->isSetRequestId())
{
echo(" RequestId\n");
echo(" " . $responseMetadata->getRequestId() . "\n");
}
}
echo(" ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
} catch (MarketplaceWebService_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");
}
}
输出给了我这个:
服务响应
GetFeedSubmissionResultResponse
GetFeedSubmissionResult
ContentMd5
G5Sw+2ooONEZU1iQoqdEOQ==
ResponseMetadata
RequestId
f9d4be45-6710-42eb-850e-f437224f9938
ResponseHeaderMetadata: RequestId: f9d4be45-6710-42eb-850e-f437224f9938, ResponseContext: EM/RH7RHQhLSc47Tj2a2Uv2CGKEfvxaKOijjcaKeoh8dGISci3yqo9OHZs7dpLDIszJVz4Jt4z8=,9SYUaktMzcOG6UyuyhXu/kJPl0gpLeenslL2rkugDLhDYftMleRx1XIexbVWNxuYl7cO6901Foiv Kp7hvaLeAQ==, Timestamp: 2013-06-18T07:29:37.393Z
我省略了 var_dump 结果,因为我不知道这是否会对我造成安全问题。但无论如何, var_dump 没有提供我可以访问的任何数据。我还将代码跟踪到类及其方法的位置,看看我是否可以从那里访问它,但空手而归。
请注意,我有正确的参数来调用结果(即 FeedSubmissionId),因为我已经使用亚马逊便笺簿完成了这项工作。
您的帮助将不胜感激!:)
问候, 迦勒