Amazon.com MWS集成

时间:2011-09-08 18:41:17

标签: php amazon-mws

我目前正在开发一个非常基本的网站,此时只会显示来自亚马逊市场的订单信息。

  • 我拥有所有MWS安全证书。
  • 我已经非常混淆地下载并审阅了PHP客户端库。
  • 我是PHP的新手,但我觉得我可以处理这个项目。

我需要知道如何安装和访问此API的信息。我觉得我已经尝试了一切。亚马逊没有提供足够的信息来实现这一目标。它们听起来好像需要5到6个简单的步骤,您可以访问您的信息;事实并非如此。

是否有关于MWS的详细教程?我需要尽可能多的信息。如果你可以帮助我,可能会概述实现这一目标所需的步骤,非常感谢!!!!我把头发拉过来。再次感谢

5 个答案:

答案 0 :(得分:12)

一个粗略的文件,可以帮助您入门。这取自几个页面,包括来自@Vaidas的this one。我还没有链接,抱歉。我唯一的贡献是把它放在一个地方。

亚马逊提供的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>');
?>

请注意,拥有它是VITAL         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 线,至少在我的情况下。除了MWS页面之外,CURL在任何页面都运行良好(它只是给了我一个空白页面,信息中包含-1s,我花了大半天时间才弄清楚我需要那条线。它在MWS论坛的某个地方

为了更好的衡量,这里是link to MWS ScratchPad

一旦我更好地处理MWS,我可能会做一个教程。或者那些更擅长HTML并且需要更多功能的人可以做到这一点。

答案 1 :(得分:10)

如果您仍然没有弄清楚如何执行此操作,请按照以下步骤操作

希望这可以帮助您和其他用户。

答案 2 :(得分:5)

亚马逊在https://developer.amazonservices.com/提供了一些很棒的示例代码。我已经成功地将他们的代码用于我的PHP应用程序。

我同意。弄明白MWS API是一场噩梦。

答案 3 :(得分:0)

@ Josiah使其适用于其他市场的方法发生了一些变化:

行:

$sign .= 'mws.amazonservices.com' . "\n";

更改为:您正确的MWS端点。在此列出http://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html - 它将与您的市场ID相匹配,可能是这样的:

$sign .= 'mws-eu.amazonservices.com' . "\n";

和英国网站的英国市场ID。

行:

$link  = "https://mws.amazonservices.com/Products/2011-10-01?";

再次,根据上面的内容更改网址的开头。

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

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

header('Content-type: application/xml');

然后评论出来:

echo($link);

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

答案 4 :(得分:0)

如果您按照正确的步骤实施MWS很容易: 1 - 根据您的首选语言从https://developer.amazonservices.com/下载代码库。 2 - 在示例文件夹下的config.php文件中设置卖家mws凭据,以便在运行示例文件夹下的特定文件时使用相同的文件,例如:RequestReportSample.php,并为特定卖家域设置报告类型和端点URL。 3-然后,您可以从暂存器检查提交的请求状态。 4-您可以使用GetReportSample文件获取订单报告数据,并根据需要使用相同的数据。

您也可以按照参考http://prashantpandeytech.blogspot.in/2015/03/mws-amazon-marketplace-web-service-api.html

进行操作