Php Amazon.com MWS集成

Php Amazon.com MWS集成,php,amazon-mws,Php,Amazon Mws,我目前正在开发一个非常基础的网站,在这个时候,它将只显示来自亚马逊市场的订单信息 我有所有的MWS安全证书 我下载了PHP客户端库,并对其进行了审查,但有很多困惑 我是一个新的PHP,但我觉得我可以处理这个项目 我需要知道如何安装和访问此API中的信息。我觉得我什么都试过了。亚马逊没有提供足够的信息来推动这一进程。他们让人觉得这需要5到6个简单的步骤,你可以访问你的信息;事实并非如此 有关于MWS的详细教程吗?我需要尽可能多的信息。如果你能帮我,也许可以概述一下让它运行所需的步骤,那将是非常

我目前正在开发一个非常基础的网站,在这个时候,它将只显示来自亚马逊市场的订单信息

  • 我有所有的MWS安全证书
  • 我下载了PHP客户端库,并对其进行了审查,但有很多困惑
  • 我是一个新的PHP,但我觉得我可以处理这个项目
我需要知道如何安装和访问此API中的信息。我觉得我什么都试过了。亚马逊没有提供足够的信息来推动这一进程。他们让人觉得这需要5到6个简单的步骤,你可以访问你的信息;事实并非如此


有关于MWS的详细教程吗?我需要尽可能多的信息。如果你能帮我,也许可以概述一下让它运行所需的步骤,那将是非常感激的!!!!我正为这件事大发雷霆。再次感谢

亚马逊提供了一些非常好的示例代码。我已经成功地将他们的代码用于我的PHP应用程序


我同意。了解MWS API是一场噩梦。

如果您仍然不知道如何实现这一点,请遵循以下步骤

  • 阅读
  • 阅读
  • RequestReport
    带有一些将返回订单数据的
    ReportType
    (第51页左右,查看报告api参考)
  • 您可以使用
  • 您也可以发布到以获取其他帮助
  • 你甚至可以写信给

希望这对您和其他用户有所帮助。

这是一个粗略的文件,可以帮助您入门。这篇文章摘自多个页面,包括@Vaidas。对不起,我还没有链接。我唯一的贡献就是把这些放在一个地方

Amazon提供的PHP代码都不是现成的。我假设你有一个带有cURL的XAMPP或者一个等价的环境。这段代码应该是开箱即用的,让您开始了解需要发生的事情。只需插入您的凭据

<?php
$param = array();
$param['AWSAccessKeyId']   = 'YourAccessKeyID'; 
$param['Action']           = 'GetLowestOfferListingsForASIN'; 
$param['SellerId']         = 'YourSellerID'; 
$param['SignatureMethod']  = 'HmacSHA256';  
$param['SignatureVersion'] = '2'; 
$param['Timestamp']        = gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time());
$param['Version']          = '2011-10-01'; 
$param['MarketplaceId']    = 'YourMarketplaceID'; 
$param['ItemCondition']    = 'new';
$param['ASINList.ASIN.1']  = 'B00C5XBAOA';
$secret = 'YourSecretKey';

$url = array();
foreach ($param as $key => $val) {

    $key = str_replace("%7E", "~", rawurlencode($key));
    $val = str_replace("%7E", "~", rawurlencode($val));
    $url[] = "{$key}={$val}";
}

sort($url);

$arr   = implode('&', $url);

$sign  = 'GET' . "\n";
$sign .= 'mws.amazonservices.com' . "\n";
$sign .= '/Products/2011-10-01' . "\n";
$sign .= $arr;

$signature = hash_hmac("sha256", $sign, $secret, true);
$signature = urlencode(base64_encode($signature));

$link  = "https://mws.amazonservices.com/Products/2011-10-01?";
$link .= $arr . "&Signature=" . $signature;
echo($link); //for debugging - you can paste this into a browser and see if it loads.

$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/xml'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

echo('<p>' . $response . '</p>');
print_r('<p>' . $info . '</p>');
?>

请注意,具有
curl\u setopt($ch,CURLOPT\u SSL\u VERIFYPEER,FALSE)
至少对我来说是这样。CURL在除了MWS页面之外的任何页面上都工作得很好(它只是给了我一个信息中有-1的空白页面,我花了一天的时间才发现我需要这一行。它在MWS论坛的某个地方

这是一个很好的衡量标准


一旦我能更好地使用MWS,也许我会做一个教程。或者有人更擅长HTML,需要更多的功能,我也可以做。

对@Josiah的方法进行一些修改,使其适用于其他市场:

行:

$sign .= 'mws.amazonservices.com' . "\n";
$link  = "https://mws.amazonservices.com/Products/2011-10-01?";
更改为:您正确的MWS端点。请在此列出-它将与您的marketplace ID相匹配,可能如下所示:

$sign .= 'mws-eu.amazonservices.com' . "\n";
和英国网站的英国市场ID

行:

$sign .= 'mws.amazonservices.com' . "\n";
$link  = "https://mws.amazonservices.com/Products/2011-10-01?";
同样,按照上面的说明更改url的开头

这可能会在浏览器中为您提供直接文本输出(查看xml源代码)。对于xml可见输出(更易于检查),请执行以下操作:

将XML内容类型行添加到文件顶部:

header('Content-type: application/xml');
然后评论:

echo($link);

打印(“”.$info.

”);
如果遵循正确的步骤,那么实现MWS很容易: 1-根据您的首选语言从下载代码库。 2-在sample文件夹下的config.php文件中设置卖家mws凭据,以便在运行sample文件夹下的特定文件时可以使用相同的凭据,如:RequestReportSample.php,并为特定卖家域设置报告类型和端点url。 3-然后可以从草稿行检查提交的请求状态。 4-您可以使用GetReportSample文件获取订单报告数据,并根据需要使用相同的数据


您也可以参考参考

我没有任何代码与亚马逊商店进行交互。抱歉。感谢pepsi_max。欢迎使用Stack Overflow!一般来说,让您的答案不包含个人内容是一个好主意,但我很高兴代码对您有所帮助,而且您对如何将我的代码转换为可供生产使用的代码提出了很好的建议。您可能希望提示:在匹配ASIN和EANs时要格外小心。你需要运行批
GetMatchingProductForId
,然后再运行你需要的任何其他信息。给我发一封电子邮件,如果你愿意,我会给你一些其他的提示-它在我的个人资料中。用户请记住,这是为被贬低的人准备的API不要忘记某种退避实现,以防您开始受到“请求限制”回复你救了我的命!谢谢!我没想到会有这么简单的解决方案,因为这一个由于声誉限制而无法投票,但我想确认@pepsi_max2k的有效输入,即mws.amazonservices.com不适用于我,但mws.amazonservices.com.au适用于我,这使得api主机名变得非常重要,具体取决于你的帐户签名位置向上的