Питання Amazon.com MWS Integration


В даний час я розробляю дуже базовий сайт, який наразі просто відображатиме інформацію про порядок від торгової марки Amazon.

  • У мене є всі повноваження MWS Security.
  • Я завантажив і перевірив, з великою плутаниною, бібліотеку Клієнта PHP.
  • Я начебто новий для PHP, але я відчуваю, що я можу впоратися з цим проектом.

Мені потрібно знати, як встановити та отримати доступ до інформації з цього API. Мені здається, що я пробував все. Amazon не надає достатньо інформації, щоб отримати це. Вони роблять це звуком, як це займає 5 або 6 простих кроків, і ви можете отримати доступ до вашої інформації; це не правда.

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


10
2017-09-08 18:41


походження


не може перевищити п'ять голосів через обмеження репутації, але хочете підтвердити дійсний ввід з @ pepsi_max2k, що mws.amazonservices.com для мене не працював, але робить mws.amazonservices.com.au, що робить ім'я хоста api таким важливо, залежно від того, де зареєстровано ваш обліковий запис - Ming Teoh


Відповіді:


Грубний файл, який допоможе вам розпочати роботу. Це взято з декількох сторінок, у тому числі цей від @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 (це просто дало мені порожню сторінку з -1 в інформації, і мені знадобилося більше дня, щоб з'ясувати, що мені потрібна ця лінія. Це десь на форумах MWS .

Для гарної міри, ось а посилання на MWS ScratchPad.

Як тільки я почну краще працювати з MWS, можливо, я буду робити підручник. Або хтось, хто краще працює в HTML і має потребу в більшій кількості функцій, може це зробити.


12
2018-03-10 20:22



Користувачі пам'ятають, що це стосується амортизованого API - Goose
Не забувайте про деяку реалізацію backoff, якщо ви починаєте отримувати відповіді "Запит Throttled" - Gabriel Alack
ти врятував мені життя! - Sharpy35
Дякую! Не очікував простого рішення, як цього - Muhammad Tarique


якщо ви все ще не зрозуміли, як це зробити, виконайте ці кроки

сподіваюся, це допоможе вам та іншим користувачам.


10
2018-05-10 18:20





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

Я згоден. Це був кошмар, щоб з'ясувати API MWS.


5
2017-10-17 13:43



У мене немає коду для взаємодії з магазинами Amazon. Вибачте - Adam Bertram
Добре, брат. Дякую тобі. - Balaji Kandasamy
його 2017 і його поки дуже незрозумілий API - tawfekov


Реалізація 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
2018-03-20 17:37





Деякі зміни в методі @ 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>');

0
2018-01-29 17:02



Спасибі pepsi_max. Ласкаво просимо до переповнення стека! Як правило, ваша відповідь не є вільною від особистого вмісту, але я дуже радий, що цей код допоміг вам, і ви вказуєте на те, як перетворити мій код на код готовності до готовності. Можливо, ви хочете відредагувати свою відповідь, щоб бути трохи більш стислим. Порада: будьте надзвичайно обережні, підбираючи відповідність ASIN для EAN. Вам потрібно буде запускати партії з GetMatchingProductForId тоді будь-яка інша інформація, яка вам потрібна. Надішліть мені електронного листа, і якщо ви хочете, я дам вам інші покажчики - це в моєму профілі. - Josiah