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

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

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

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

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

Ответ 1

Грубый файл, чтобы вы начали. Это взято из нескольких страниц, включая этот из @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>');
?>

Обратите внимание, что VITAL имеет       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); линии, по крайней мере, в моем случае. CURL отлично работал на любой странице, кроме страницы MWS (она просто давала мне пустую страницу с -1s в информации, и мне потребовалось большую часть дня, чтобы понять, что мне нужна эта строка. Это на форумах MWS где-то.

Для хорошей меры, здесь ссылка на MWS ScratchPad.

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

Некоторые изменения метода @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>');

Ответ 5

Реализация 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