1

尝试使用 XML 提要发送对 _POST_PRODUCT_DATA_ 的请求并通过 cURL 发送。

我收到错误消息;

SenderContentMD5DoesNotMatch您为供稿传递的 Content-MD5 HTTP 标头与我们为您的供稿计算的 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 代码。

有人可以帮忙吗!?

4

1 回答 1

0

我认为您的 XML 字符串应该以原始二进制格式进行散列,以便与 MWS 一起使用。

base64_encode(md5($xml,true))
于 2017-06-12T10:29:18.533 回答