Amazon Marketplace - MD5 контент-заголовок XML в скручиваемости
Попытка отправки через запрос на _POST_PRODUCT_DATA_ с использованием канала XML и отправка через cURL.
Я получаю ошибку;
SenderContentMD5DoesNotMatch: HTTP-заголовок Content-MD5, который вы передали для своего канала, не соответствует Content-MD5, который мы рассчитали для вашего канала
Я взял вывод нашего XML и передал его через блокнот Amazon, и результат MD5 такой же, как когда я беру XML и запускаю его через создателя хэша MD5 онлайн.
Но когда я вывожу результат md5($xml) на наш сервер, результат будет другим - что я просто не могу понять.
Это код, используемый для создания запроса cURL;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $curlToSend);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: text/xml","Content-MD5: ".base64_encode(md5($xml)),"x-amazon-user-agent: MyScriptName/1.0"));
$result = curl_exec($ch);
curl_close($ch);
Где $curlToSend - это запрос POST, а $ xml - это, очевидно, встроенный код $ xml для канала.
Может кто-нибудь помочь, пожалуйста!?
1 ответ
Я думаю, что ваша строка XML должна быть хэширована в необработанном двоичном формате, чтобы она работала с MWS.
base64_encode(md5($xml,true))