You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用FedEx OAuth2 Rate API遇422 INVALID.INPUT.EXCEPTION错误求助

解决FedEx OAuth2 Rate API调用返回422无效输入错误

以下是针对你遇到的INVALID.INPUT.EXCEPTION错误的具体解决建议:

1. 确认API环境与账号匹配

如果使用的是测试账号,必须调用沙箱环境地址:

https://apis-sandbox.fedex.com/rate/v1/rates/quotes

生产账号才使用https://apis.fedex.com,环境与账号不匹配会直接触发无效输入错误。

2. 补充必填字段

FedEx Rate API v1存在多个必填字段,你的payload缺少核心项:

  • serviceType:必须指定具体运输服务类型,比如FEDEX_GROUND、INTERNATIONAL_PRIORITY等,这是API要求的必填参数。
  • packagingType:每个包裹必须指定包装类型,比如YOUR_PACKAGING(自定义包装)或FEDEX_BOX(FedEx标准箱)。

修改后的payload示例:

$payload["requestedShipment"]["serviceType"] = "FEDEX_GROUND";

$payload["requestedShipment"]["requestedPackageLineItems"][0] = [
    "weight" => [
        "units" => "KG",
        "value" => "10"
    ],
    "packagingType" => "YOUR_PACKAGING" // 新增必填字段
];

3. 完善地址信息

加拿大国内运输的地址建议补充provinceCode(省份代码),避免地址验证失败:

$payload["requestedShipment"]["shipper"]["address"]["provinceCode"] = "ON"; // L4Z1X3对应安大略省
$payload["requestedShipment"]["recipient"]["address"]["provinceCode"] = "BC"; // V1Y5E1对应不列颠哥伦比亚省

4. 优化请求配置

  • 移除addslashes:json_encode会自动处理字符串转义,使用addslashes会导致JSON格式错误,直接用json_encode($payload)即可。
  • 生产环境开启SSL验证:测试环境暂时关闭CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER没问题,但生产环境必须设为1,保证请求安全。

5. 获取详细错误信息

添加X-FedEx-Debug: true请求头,让API返回更具体的错误详情(比如明确指出哪个字段无效):

$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer '.$token,
    'X-locale: en_US',
    'X-FedEx-Debug: true' // 新增调试头
];

内容的提问来源于stack exchange,提问作者cjrb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:16:15