FedEx FEDEX_ONE_RATE API SOAP请求校验失败问题咨询
ProcessShipmentRequest校验失败,错误:cvc-complex-type.2.4.a: 检测到以元素'SpecialServicesRequested'开头的无效内容,预期应为{"http://fedex.com/ws/ship/v28":RequestedPackageLineItems}其中之一。
错误原因
- XML元素顺序违反FedEx Ship API v28的Schema约束:SOAP协议中该接口要求
<RequestedShipment>下的子元素必须严格按照WSDL定义的固定顺序排列,你当前将<SpecialServicesRequested>放在了<ShipTimestamp>、<DropoffType>等基础字段之前,不符合接口要求的参数顺序。 - 服务类型与特殊服务配置冲突:你指定的配送服务类型为
GROUND_HOME_DELIVERY(陆运住宅配送),但特殊服务配置中添加了仅适用于空运服务的FEDEX_2_DAY参数,二者无法同时生效。
解决方法
- 调整
<RequestedShipment>下的元素排列顺序,按照以下官方要求的顺序排列即可:ShipTimestamp→DropoffType→ServiceType→PackagingType→Shipper→Recipient→ShippingChargesPayment→SpecialServicesRequested→CustomsClearanceDetail→LabelSpecification→ShippingDocumentSpecification→PackageCount→RequestedPackageLineItems
你只需将当前整段<SpecialServicesRequested>代码块移动到<ShippingChargesPayment>结束标签之后、<CustomsClearanceDetail>开始标签之前的位置即可。 - 删除冲突的特殊服务配置:如果要使用
GROUND_HOME_DELIVERY陆运服务,直接删除<SpecialServiceTypes>FEDEX_2_DAY</SpecialServiceTypes>这一行即可;如果确实需要2日达服务,将ServiceType的值改为FEDEX_2_DAY即可。 - 若你需要使用FEDEX_ONE_RATE服务,需额外确认所选服务类型、包装类型符合One Rate的适用规则,同时在SpecialServicesRequested中添加对应的One Rate标识参数。
内容的提问来源于stack exchange,提问作者Balamurugan A.
相关产品推荐
相关产品推荐

