我正在使用亞馬遜MWS API,並試圖使用SubmitFeed更新我的庫存庫存水平,但是,它始終返回InputDataError,但沒有更多信息。我已經與亞馬遜聯繫瞭解爲什麼我會收到此錯誤的更多詳細信息,並且他們告訴我這是一個解析錯誤,並向我發送了最新的XSD以檢查我的XML,但是我看不到任何XML問題。我送的XML是:SubmitFeed上的亞馬遜商家Web服務InputDataError
<?xml version="1.0" encoding="utf-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>MY_MERCHANT_TOKEN</MerchantIdentifier>
</Header>
<MessageType>Inventory</MessageType>
<Message>
<MessageID>1</MessageID>
<OperationType>Update</OperationType>
<Inventory>
<SKU>2360</SKU>
<Quantity>3</Quantity>
<FullfillmentLatency>1</FullfillmentLatency>
</Inventory>
</Message>
</AmazonEnvelope>
我使用PHPS捲曲建立崗位如下發出請求:
function submitFeed($xmldata, $request)
{
$request['Signature']=$this->_signParameters($request,$this->_awsSecretAccessKey);
$url_with_fields="https://mws.amazonservices.co.uk?".$this->_getParametersAsString($request);
$md5=md5($xmldata);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: text/xml',
'Content-MD5: '. $md5,
'Transfer-Encoding: chunked'
));
curl_setopt($ch, CURLOPT_URL,$url_with_fields);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmldata);
//execute post
$result = curl_exec($ch);
print_r($result);
//close connection
curl_close($ch);
}
我認爲,捲曲經歷不,我想知道如果有什麼我在這裏失蹤?
好的,我現在在他們的PHP包中使用了Amazon SubmitFeedSample,並且提交已經使用上面的XML提交。所以這不是問題,我有一種感覺,就是在我自己的代碼中構建請求的方式。我會看看我能從亞馬遜包中找到什麼,如果我想出一個解決方案將在這裏發佈。 –