Интеграция Amazon.com MWS - PullRequest
       13

Интеграция Amazon.com MWS

9 голосов
/ 08 сентября 2011

В настоящее время я занимаюсь разработкой очень простого сайта, который в настоящее время просто отображает информацию о заказе на Amazon Marketplace.

  • У меня есть все учетные данные MWS Security.
  • Я с большой растерянностью скачал и просмотрел Клиентскую библиотеку PHP.
  • Я немного новв PHP, но я чувствую, что могу справиться с этим проектом.

Мне нужно знать, как установить и получить доступ к информации из этого API.Я чувствую, что перепробовал все.Амазонка не предоставляет достаточно информации для этого.Они звучат так, словно для этого нужно 5 или 6 простых шагов, и вы можете получить доступ к своей информации;это не так.

Есть ли подробный учебник по MWS?Мне нужно как можно больше информации.Если вы можете помочь мне, возможно, наметьте шаги, необходимые для его начала, это было бы очень признательно !!!!Я тяну волосы за это.Еще раз спасибо

Ответы [ 5 ]

11 голосов
/ 11 марта 2014

Грубый файл, чтобы вы начали. Это взято с нескольких страниц, включая , этот из @Vaidas. У меня еще нет ссылок, извините. Мой единственный вклад - собрать это в одном месте.

Ни один из PHP-кода, поставляемого Amazon, не работал для меня из коробки. Я предполагаю, что у вас есть XAMPP с cURL или эквивалентной средой. Этот код ДОЛЖЕН работать из коробки, чтобы вы начали понимать, что должно произойти. Просто введите свои учетные данные.

<?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); линия, по крайней мере, в моем случае. CURL работал нормально для любой страницы, кроме страницы MWS (он просто давал мне пустую страницу с -1 в информации, и мне потребовалось большую часть дня, чтобы понять, что мне нужна эта строка. Это где-то на форумах MWS .

Для справки, вот ссылка на MWS ScratchPad .

Как только я лучше справлюсь с работой с MWS, возможно, я сделаю учебник. Или кто-то, кто лучше в HTML и нуждается в большем количестве функций, может сделать это.

10 голосов
/ 10 мая 2012

на случай, если вы все еще не поняли, как это сделать, выполните следующие действия

надеюсь, это поможет вам и другим пользователям.

5 голосов
/ 17 октября 2011

Amazon предоставляет отличный пример кода на https://developer.amazonservices.com/. Я успешно использовал их код для моих PHP-приложений.

Я согласен. Это был кошмар, чтобы понять API MWS.

0 голосов
/ 20 марта 2015

Внедрить MWS легко, если вы выполните правильные шаги: 1-Загрузите библиотеку кодовой базы из https://developer.amazonservices.com/ в соответствии с предпочитаемым вами языком.2-Установите учетные данные mws продавца в файле config.php в папке примеров, чтобы их можно было использовать при запуске определенного файла в папке примеров, например: RequestReportSample.php, и укажите тип отчета и URL-адрес конечной точки для конкретного домена продавца.3- Затем вы можете проверить статус отправленного запроса с блокнота.4- Вы можете использовать файл GetReportSample для получения данных отчета о заказе и использовать их в соответствии с вашими потребностями.

Вы также можете перейти по ссылке http://prashantpandeytech.blogspot.in/2015/03/mws-amazon-marketplace-web-service-api.html

0 голосов
/ 29 января 2015

Некоторые изменения в методе @ Josiah, чтобы он работал на других рынках:

Строка:

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

Измените на: вашу правильную конечную точку MWS.Перечислите здесь http://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html - он будет соответствовать вашему идентификатору торговой площадки, который может выглядеть примерно так:

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

и идентификатор торговой площадки в Великобритании для сайта в Великобритании.

Строка:

$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>');
...