FedEx 追踪 API 返回未记录的错误代码

问题描述 投票:0回答:1

我构建了一个 C# 控制台应用程序 .NET 6.0,以与 FedEx Tracking API(而不是旧版 SOAP 服务)集成。它一直有效,直到我在 2023 年 12 月重新运行测试,此时仅针对其沙箱环境发送的所有请求(产品没有此问题)开始返回以下响应,HTTP 代码为 417:

"code" : "REQUEST.MISMATCH",
    "message" : "The response is unavailable for the request payload sent to this virtualized sandbox instance. Please use the exact request payload from API JSON Collection available for download through FedEx Developer Portal and try again."

417 不是其文档中记录的响应,我一直在使用此:https://developer.fedex.com/api/en-us/catalog/track/docs.html#operation/TrackingDocuments

还有其他人遇到过这种情况吗?您找到了解释或解决方案吗?同样,直到 2023 年末,这一切都有效。我发送请求的 C# 代码:

var trackUrl = $"https://{testurl}.fedex.com/track/v1/trackingnumbers";
var body = new FedexTrackingRequest()
{
    trackingInfo = new List<FedexTrackingInformation>() {
            new FedexTrackingInformation()
            {
                shipDateBegin = DateTime.Parse("2024-01-01"),
                shipDateEnd = DateTime.Now,
                trackingNumberInfo = new FedexTrackingNumbers()
                {
                    trackingNumber = num,
                    carrierCode = "FDXE"
                }
            },
            new FedexTrackingInformation()
            {
                shipDateBegin = DateTime.Parse("2024-01-01"),
                shipDateEnd = DateTime.Now,
                trackingNumberInfo = new FedexTrackingNumbers()
                {
                    trackingNumber = num2,
                    carrierCode = "FDXE"
                }
            }
        },
    includeDetailedScans = true
};

trackClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + auth?.access_token);
trackClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
trackClient.DefaultRequestHeaders.TryAddWithoutValidation("X-locale", "en_US");

var trackRes = await trackClient.PostAsync(trackUrl, new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"));
c# fedex
1个回答
0
投票

我有同样的问题,但看起来解决方案在这里:“请使用可通过 FedEx 开发人员门户下载的 API JSON 集合中的确切请求负载,然后重试。” 这意味着您必须仅使用 API JSON 集合中的相同请求。如果添加或删除任何属性,api-sandbox 看起来会返回此错误。 我知道,这是非常愚蠢的,演示/测试/沙箱基础设施应该与生产版本相同,但是 Fedex 创建沙箱,只允许使用少数模式,并且不允许测试任何其他组合。

© www.soinside.com 2019 - 2024. All rights reserved.