9

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

  • 我拥有所有 MWS 安全证书。
  • 我已经下载并查看了 PHP 客户端库,但很困惑。
  • 我对 PHP 有点陌生,但我觉得我可以处理这个项目。

我需要知道如何从这个 API 安装和访问信息。我觉得我什么都试过了。亚马逊没有提供足够的信息来实现这一目标。它们听起来好像只需要 5 或 6 个简单的步骤,您就可以访问您的信息;这不是真的。

有没有关于MWS的详细教程?我需要尽可能多的信息。如果你能帮助我,也许可以概述实现它所需的步骤,那将非常感激!!!!我正在为此拔头发。再次感谢

4

5 回答 5

11

一个粗略的文件让你开始。这取自几页,包括来自@Vaidas 的这一页。我还没有链接,抱歉。我唯一的贡献是将它们放在一个地方。

亚马逊提供的 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_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 至少在我的情况下,拥有这条线是至关重要的。除了 MWS 页面外,CURL 对任何页面都可以正常工作(它只是给了我一个信息中带有 -1 的空白页面,我花了大部分时间才弄清楚我需要那条线。它在 MWS 论坛的某个地方.

为了更好地衡量,这里是MWS ScratchPad 的链接

一旦我对使用 MWS 有了更好的了解,也许我会做一个教程。或者更擅长 HTML 并且需要更多功能的人可以做到这一点。

于 2014-03-10T20:22:09.967 回答
10

如果您仍然不知道如何执行此操作,请按照以下步骤操作

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

于 2012-05-10T18:20:40.280 回答
5

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

我同意。弄清楚 MWS API 是一场噩梦。

于 2011-10-17T13:43:19.190 回答
0

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

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

于 2015-03-20T17:37:53.660 回答
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?";

同样,按照上面的方式更改 url 的开头。

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

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

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

然后注释掉:

echo($link);

print_r('<p>' . $info . '</p>');
于 2015-01-29T17:02:47.057 回答