Отслеживание FedEx - невозможно пропустить ParentCredentials - сообщение об ошибке: «Ошибка аутентификации», код ошибки 1000 - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить ответ от FedEx Tracking API, используя учетные данные учетной записи разработчика (UserCredentials), и у меня нет ParentCredentials, потому что я не совместимый пользователь.

Код выглядит следующим образом:

            TrackRequest request = new TrackRequest();

            request.WebAuthenticationDetail = new WebAuthenticationDetail();
            request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential();
            request.WebAuthenticationDetail.UserCredential.Key = "XXX"; // Replace "XXX" with the Key
            request.WebAuthenticationDetail.UserCredential.Password = "XXX"; // Replace "XXX" with the Password
            request.WebAuthenticationDetail.ParentCredential = null;

            request.ClientDetail = new ClientDetail();
            request.ClientDetail.AccountNumber = "XXX"; // Replace "XXX" with the client's account number
            request.ClientDetail.MeterNumber = "XXX"; // Replace "XXX" with the client's meter number

            request.TransactionDetail = new TransactionDetail();
            request.TransactionDetail.CustomerTransactionId = "***Track Request using VC#***";  //This is a reference field for the customer.  Any value can be used and will be provided in the response.

            request.Version = new VersionId();

            // Tracking information
            request.SelectionDetails = new TrackSelectionDetail[1] { new TrackSelectionDetail() };
            request.SelectionDetails[0].PackageIdentifier = new TrackPackageIdentifier();
            request.SelectionDetails[0].PackageIdentifier.Value = "123456789012"; // Replace "XXX" with tracking number or door tag
            //if (usePropertyFile()) //Set values from a file for testing purposes
            //{
            //    request.SelectionDetails[0].PackageIdentifier.Value = getProperty("trackingnumber");
            //}
            request.SelectionDetails[0].PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG;

            // Date range is optional.
            // If omitted, set to false
            //request.SelectionDetails[0].ShipDateRangeBegin = DateTime.Parse("06/18/2012"); //MM/DD/YYYY
            request.SelectionDetails[0].ShipDateRangeEnd = request.SelectionDetails[0].ShipDateRangeBegin.AddDays(0);
            request.SelectionDetails[0].ShipDateRangeBeginSpecified = false;
            request.SelectionDetails[0].ShipDateRangeEndSpecified = false;

            // Include detailed scans is optional.
            // If omitted, set to false
            request.ProcessingOptions = new TrackRequestProcessingOptionType[1];
            request.ProcessingOptions[0] = TrackRequestProcessingOptionType.INCLUDE_DETAILED_SCANS;

Итак, это обычный пример, к которому имеет доступ каждый пользователь-разработчик, и главное отличие в том, что я не использую ParentCredentials.

Конечная точка доступа к API: https://ws.fedex.com/web-services/track

Используемые мной UserCredentials действительны.

Полученный ответ содержит сообщение об ошибке и код ошибки из заголовка этого вопроса. Как я могу избежать этого?

...