我在通过亚马逊 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。
我按照Amazon 提供的XML 文档指南创建了 XML。
基于此 Stack Overflow 问题,多个项目的格式是正确的。
我已经对照 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>
我尝试按顺序确认单个项目,以防多个项目的结构不正确
我尝试完全删除项目部分,因为我阅读了项目部分有时不需要
我尝试通过我创建的处理所有其他请求成功
我尝试通过亚马逊暂存器提交:https ://mws.amazonservices.co.uk/scratchpad/index.html
我尝试过的任何方法都没有解决这个问题,我完全没有想法
你能提供的任何帮助将不胜感激
谢谢