【发布时间】:2013-02-20 10:35:08
【问题描述】:
我在通过亚马逊 MWS 向亚马逊提交订单确认时遇到了一些问题。
我提交的 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>F85S4E7G4FSE98</MerchantIdentifier>
</Header>
<MessageType>OrderAcknowledgment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderAcknowledgment>
<AmazonOrderID>654-8547853-2598634</AmazonOrderID>
<MerchantOrderID>658795124</MerchantOrderID>
<StatusCode>Success</StatusCode>
<Item>
<AmazonOrderItemCode>35287489587654</AmazonOrderItemCode>
<MerchantOrderItemID>587487</MerchantOrderItemID>
<AmazonOrderItemCode>35287489587655</AmazonOrderItemCode>
<MerchantOrderItemID>587488</MerchantOrderItemID>
</Item>
</OrderAcknowledgment>
</Message>
</AmazonEnvelope>
在提交 XML 时,亚马逊返回的错误是:
错误 25:我们无法处理 XML 供稿,因为一项或多项无效。请重新提交 Feed。
我按照亚马逊提供的Guide to XML documentation 创建了 XML。
基于this Stack Overflow question,多个项目的格式是正确的。
我已经对照 XSD 文件检查了我的数据,并且 XML 似乎有效
https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_1_9/OrderAcknowledgement.xsd
https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_1_9/amzn-base.xsd
我尝试使用 XML XSD 验证器来验证 XML,但它返回错误:
Src-resolve:无法将名称“AmazonOrderID”解析为 A(n)“元素声明”组件。
这个错误对我来说没有多大意义,但我相信它会被返回,因为我无法在验证器中正确引用许多其他 XSC。 “AmazonOrderID”的限制位于 amzn-base.xsd 文件中,与我提供的 AmazonOrderID 匹配
<xsd:element name="AmazonOrderID">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\w{3}-\w{7}-\w{7}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
我已尝试在订单中确认单个项目,以防多个项目的结构不正确
我已经尝试完全删除项目部分,因为我阅读了项目部分有时不需要
我尝试通过我创建的 php 脚本提交,该脚本成功处理所有其他请求
我已尝试通过亚马逊暂存器提交:https://mws.amazonservices.co.uk/scratchpad/index.html
我尝试过的方法都没有解决这个问题,我完全没有想法
如果您能提供任何帮助,我们将不胜感激
谢谢
【问题讨论】:
标签: xml xsd amazon-mws