3

我正在使用订单确认提要取消亚马逊的订单。下面是我用来取消亚马逊订单的 xml 提要格式。

我已成功将此提要提交到 MWS,但每次我检查提要提交结果时,总是出现此错误

“您提交的 XML 在第 1 行(或附近)第 485 列的 Amazon Envelope XML 级别格式不正确”。

我根据这个Selling on Amazon: Guide to XML创建了 xml 格式。

<?xml version="1.0"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">

<Header>
    <DocumentVersion>1.01</DocumentVersion>
    <MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
</Header>

<MessageType>OrderAcknowledgment</MessageType>
<Message>
    <MessageID>1</MessageID>
    <OrderAcknowledgement>
        <AmazonOrderID>123-1234567-1234567</AmazonOrderID>
        <StatusCode>Failure</StatusCode>
        <CancelReason>BuyerCanceled</CancelReason>
    </OrderAcknowledgment>
</Message>
</AmazonEnvelope>

任何人都可以帮助我以 xml 格式在这里缺少什么吗?

4

1 回答 1

6

您的 XML 代码有两个问题:

  1. 亚马逊使用“OrderAcknowledgement”,而不是“OrderAcknowledgement”。尽管该选择可能值得商榷,但 XSD 并没有为不同的拼写留下任何空间。(这适用于MessageType开始和结束 XML 标记,您的拼写仅对开始标记正确)
  2. CancelReason仅在<Item>子结构内部有效。

以下 XML 验证:

<?xml version="1.0"?> 
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
    <Header>
    <DocumentVersion>1.01</DocumentVersion>
    <MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
</Header>
<MessageType>OrderAcknowledgement</MessageType>
<Message>
    <MessageID>1</MessageID>
    <OrderAcknowledgement>
        <AmazonOrderID>123-1234567-1234567</AmazonOrderID>
        <StatusCode>Failure</StatusCode>
        <Item>
            <AmazonOrderItemCode>12345678901234</AmazonOrderItemCode>
            <CancelReason>BuyerCanceled</CancelReason>
        </Item>
        <Item>          
            <AmazonOrderItemCode>12345678901235</AmazonOrderItemCode>
            <CancelReason>BuyerCanceled</CancelReason>
        </Item>
        <Item>
            <AmazonOrderItemCode>12345678901237</AmazonOrderItemCode>
            <CancelReason>BuyerCanceled</CancelReason>
        </Item>
    </OrderAcknowledgement>
</Message>
</AmazonEnvelope>
于 2013-08-16T20:01:06.847 回答