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

Python版FedEx包裹查询脚本转PHP报错UNSUPPORTED.ACTION求解决方案

FedEx快递免API注册PHP查询实现方案

问题根因

你提交的代码存在两处核心错误:

  • 请求头参数错误:该FedEx公开查询接口要求提交表单格式数据,你错误设置Content-Type: application/json,导致服务端无法解析请求参数
  • 编码逻辑错误:仅data字段对应的请求结构体需要做JSON序列化,其余action、locale、version等均为普通表单参数,你错误将整个请求数组做了JSON序列化,导致服务端无法识别action参数,返回UNSUPPORTED.ACTION错误。

修正后可运行代码

<?php
$dir = __DIR__;
include $dir . '/vendor/autoload.php';

$tracking_number = '123456789'; // 替换为实际快递单号
$url = 'https://www.fedex.com/trackingCal/track';

// 构造data字段单独JSON序列化
$trackRequest = [
    'TrackPackagesRequest' => [
        'appType' => 'wtrk',
        'uniqueKey' => '',
        'processingParameters' => [
            'anonymousTransaction' => true,
            'clientId' => 'WTRK',
            'returnDetailedErrors' => true,
            'returnLocalizedDateTime' => false
        ],
        'trackingInfoList' => [
            [
                'trackNumberInfo' => [
                    'trackingNumber' => $tracking_number,
                    'trackingQualifier' => '',
                    'trackingCarrier' => ''
                ]
            ]
        ]
    ]
];

// 构造完整表单参数
$postData = [
    'data' => json_encode($trackRequest),
    'action' => 'trackpackages',
    'locale' => 'en_US',
    'format' => 'json',
    'version' => 99
];

// 发送请求,无需自定义Content-Type,Requests库会自动适配表单格式
$response = Requests::post($url, [], $postData);

// 解析返回结果
$result = json_decode($response->body, true);
if (isset($result['TrackPackagesResponse']['packageList'][0])) {
    $packageInfo = $result['TrackPackagesResponse']['packageList'][0];
    $fedex_status = $packageInfo['keyStatus'];
    $fedex_details = $packageInfo['statusWithDetails'];
    $delivery_date = $packageInfo['displayActDeliveryDt'] ?? '';
    $delivery_time = $packageInfo['displayActDeliveryTm'] ?? '';
    
    // 测试输出
    var_dump($fedex_status, $fedex_details, $delivery_date, $delivery_time);
} else {
    echo "查询失败,无对应快递信息";
}

注意事项

  • 若需要查询国内FedEx单号,可将locale参数修改为zh_CN,返回内容会自动适配中文
  • 该接口为FedEx公开查询页面使用的后端接口,无需注册官方开发者账号即可调用,请注意控制调用频率避免被IP限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:24:03