Amazon SP-API自动取消订单时XML格式错误技术求助
问题排查与修正方案
核心错误:使用了错误的Feed MessageType
你当前的XML用了OrderAcknowledgement类型,但取消订单需要使用OrderCancel类型。Amazon的Feeds API对不同操作有严格的类型和结构要求,这是导致格式错误的主要原因。
具体问题点及修正:
- MessageType错误:将
<MessageType>OrderAcknowledgement</MessageType>改为<MessageType>OrderCancel</MessageType> - 根业务节点错误:将
<OrderAcknowledgement>替换为<OrderCancel>,同时移除无关的<StatusCode>字段(取消订单不需要这个字段) - 节点结构匹配:OrderCancel的结构需要正确嵌套
AmazonOrderID、Item(包含AmazonOrderItemCode和CancelReason)
修正后的XML示例:
<?xml version="1.0" encoding="iso-8859-1"?> <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> <Header> <DocumentVersion>1.01</DocumentVersion> <MerchantIdentifier>A2CGYLKCS16S7R</MerchantIdentifier> </Header> <MessageType>OrderCancel</MessageType> <Message> <MessageID>1</MessageID> <OrderCancel> <AmazonOrderID>304-6263183-0171523</AmazonOrderID> <Item> <AmazonOrderItemCode>B08PXHDJPV</AmazonOrderItemCode> <CancelReason>BuyerCanceled</CancelReason> </Item> </OrderCancel> </Message> </AmazonEnvelope>
额外排查点:
- XML编码一致性:确保实际提交的文件编码和声明的
iso-8859-1一致,若有特殊字符,建议改用UTF-8编码 - 隐藏字符检查:确认XML文件开头没有BOM(字节顺序标记)或其他不可见字符,这也可能导致“第1行第9列”的格式错误
内容的提问来源于stack exchange,提问作者jonny
相关产品推荐
相关产品推荐

