Fedex Rest Create Shipment API输入字段值无效问题求助
Fedex Create Shipment API 输入错误排查方案
常见触发"INVALID.INPUT.EXCEPTION"的原因及排查步骤
1. 认证信息校验
- 确认
client_id、client_secret是沙箱环境的有效测试密钥,生产密钥无法在沙箱环境使用 - 检查请求头中的
Authorization令牌是否有效,沙箱令牌有效期为1小时,过期需重新生成
2. 请求Payload字段合规性检查
Fedex沙箱对字段的格式、枚举值、长度有严格限制,重点排查以下内容:
- 地址类字段:
- 收件人/发件人邮编必须符合对应国家规范(如美国为5位或9位带连字符格式)
- 国家代码必须是2位大写ISO代码(如
US、CN),不能使用国家全称 - 街道地址每行长度不超过35字符,且不能包含非法特殊字符
- 包裹类字段:
- 重量单位必须是枚举值
LB或KG,不能使用其他自定义缩写 - 尺寸、重量数值必须为正数,且符合所选物流服务的尺寸限制
- 包裹数量不能为0或负数
- 重量单位必须是枚举值
- 服务与日期字段:
- 服务类型必须使用沙箱支持的代码(如
FEDEX_GROUND、PRIORITY_OVERNIGHT),避免使用生产环境专属服务代码 - 取件、发货日期必须为
YYYY-MM-DD格式,且不能是过去的日期
- 服务类型必须使用沙箱支持的代码(如
- 必填字段:确认
requestedShipment下的shipper、recipient、shippingChargesPayment等核心字段未遗漏
3. Laravel代码逻辑排查
- 确认请求使用
POST方法,沙箱API地址正确:https://apis-sandbox.fedex.com/ship/v1/shipments - 检查Payload是否被正确JSON编码,无字段转义错误(如特殊字符被双重转义)
- 排查代码中是否有字段值被意外覆盖或赋值为空的情况
4. 利用沙箱工具定位具体错误
- 使用Fedex沙箱提供的API测试工具直接提交Payload,工具会返回更详细的错误字段提示
- 查看沙箱控制台的请求日志,日志中会记录具体的字段违规信息
示例Payload校验参考
以下是沙箱环境下的标准Payload结构,重点字段已标记:
{ "accountNumber": { "value": "YOUR_SANDBOX_ACCOUNT" }, "requestedShipment": { "shipper": { "address": { "postalCode": "90210", // *符合对应国家邮编格式* "countryCode": "US" // *2位大写ISO代码* } }, "recipient": { "address": { "postalCode": "10001", "countryCode": "US" } }, "serviceType": "FEDEX_GROUND", // *沙箱支持的服务代码* "packageCount": "1", "requestedPackageLineItems": [ { "weight": { "value": 5.0, // *正数* "units": "LB" // *枚举值LB/KG* } } ], "shippingChargesPayment": { "paymentType": "SENDER", "payor": { "accountNumber": { "value": "YOUR_SANDBOX_ACCOUNT" } } } } }
内容的提问来源于stack exchange,提问作者Alek Stephanok
相关产品推荐
相关产品推荐

