调用FedEx Track API仅返回TransactionID无数据,请求排查问题
问题排查与解决方案
1. 运单号码有效性问题
沙箱环境不能用真实运单,必须用FedEx官方提供的测试跟踪号码(比如沙箱常用测试号:123456789012,具体以FedEx开发者文档最新测试数据为准);生产环境则必须使用已生成的真实有效FedEx运单号码,无效或未激活的运单会返回空output。
2. 请求体缺失可选但关键的参数
FedEx Track API的请求体虽然trackingNumber是必填,但部分场景下补充可选参数才能返回完整数据,比如:
includeDetailedScans: 设为true可获取详细扫描记录carrierCode: 指定承运商代码(如FDXE代表FedEx Express,FDXG代表FedEx Ground)
修改你的请求体代码:
requestBody = "{""trackingInfo"": [{""trackingNumber"": """ & trackingNumber & """, ""carrierCode"": ""FDXE""}], ""includeDetailedScans"": true}"
3. 权限验证细节
虽然能获取OAuth Token,但要确认你的API密钥(Client ID/Secret)是否开通了Track API的访问权限。登录FedEx开发者后台,检查应用的权限列表,确保Track服务已启用。
4. 调试补充建议
在代码里加入HTTP状态码输出,确认请求是否成功:
' 在获取responseText后添加 MsgBox "HTTP状态码: " & xmlhttp.Status & vbCrLf & "响应内容: " & responseText
如果状态码是200但返回空output,基本就是运单或参数问题;如果是4xx/5xx,则根据错误信息排查权限或端点问题。
内容的提问来源于stack exchange,提问作者user28187772
相关产品推荐
相关产品推荐

