2013-12-20 32 views
1

我正在使用亞馬遜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); 
} 

我認爲,捲曲經歷不,我想知道如果有什麼我在這裏失蹤?

+1

好的,我現在在他們的PHP包中使用了Amazon SubmitFeedSample,並且提交已經使用上面的XML提交。所以這不是問題,我有一種感覺,就是在我自己的代碼中構建請求的方式。我會看看我能從亞馬遜包中找到什麼,如果我想出一個解決方案將在這裏發佈。 –

回答

0

嘗試用<FulfillmentLatency>1</FulfillmentLatency>代替<FullfillmentLatency>1</FullfillmentLatency>

+0

非常感謝您的回覆。不幸的是,我仍然收到同樣的錯誤。 –

0

你是否使用暫存器檢查了xml?我相信有一個問題與XML。 庫存XSD有一個序列來創建xml並在scrathpad中進行測試。