FedEx PHP API多箱发货:首箱重量必填错误排查
FedEx PHP API分箱发货报错2458:首箱提示“weight is required”的解决方法
你的问题并非遗漏必填重量字段,而是**RequestedPackageLineItems的数组结构错误**,具体问题如下:
结构层级错误
你把SequenceNumber放在了RequestedPackageLineItems数组的根层级,而非每个包裹项的内部。FedEx API会将这个根层级的SequenceNumber识别为第二个包裹项(API的PACKAGE_INDEX从1开始计数),但这个“包裹”没有任何重量参数,因此触发2458错误,提示索引1的包裹缺少重量。包裹数量不匹配
你设置了PackageCount=3且PackageDetail=INDIVIDUAL_PACKAGES,这要求必须提供3个完整的包裹项,但当前请求里只有1个包裹项(索引0),不符合API的要求。
修正后的RequestedPackageLineItems结构示例
[RequestedPackageLineItems] => Array ( [0] => Array ( [SequenceNumber] => 1 [Weight] => Array ( [Value] => 18 [Units] => LB ) [CustomerReferences] => Array ( [0] => Array ( [CustomerReferenceType] => CUSTOMER_REFERENCE [Value] => Shipper # 99 ) ) ) [1] => Array ( [SequenceNumber] => 2 [Weight] => Array ( [Value] => 18 [Units] => LB ) // 可添加该包裹的其他自定义参数 ) [2] => Array ( [SequenceNumber] => 3 [Weight] => Array ( [Value] => 18 [Units] => LB ) // 可添加该包裹的其他自定义参数 ) )
关键注意事项
- 每个包裹项必须包含
SequenceNumber,数值从1开始连续递增,且数量与PackageCount完全一致。 TotalWeight仅为总重量统计,无法替代单个包裹的Weight参数,当PackageDetail=INDIVIDUAL_PACKAGES时,每个包裹的重量都是必填项。- 确保每个包裹的
Weight中,Value是有效数值,Units符合FedEx规范(如LB、KG)。
内容的提问来源于stack exchange,提问作者paran
相关产品推荐
相关产品推荐

