Пример #1
0
        static void Main(string[] args)
        {
            try
            {
                LBRecovery                    lb_recovery            = new LBRecovery();
                LabelRecoveryRequest          label_recovery_request = new LabelRecoveryRequest();
                UPSSecurity                   upss = new UPSSecurity();
                UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken();
                upssSvcAccessToken.AccessLicenseNumber = "Your access license number";

                upss.ServiceAccessToken = upssSvcAccessToken;
                UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken();

                upssUsrNameToken.Username = "******";
                upssUsrNameToken.Password = "******";

                upss.UsernameToken           = upssUsrNameToken;
                lb_recovery.UPSSecurityValue = upss;
                RequestType request = new RequestType();
                label_recovery_request.Request = request;

                label_recovery_request.TrackingNumber = "Your tracking number";


                LabelRecoveryResponse label_recovery_response = lb_recovery.ProcessLabelRecovery(label_recovery_request);
                LabelImageType        image = (LabelImageType)label_recovery_response.Items[0];
                Console.WriteLine("Image Base64:\n " + image.GraphicImage);
                Console.ReadKey();
            }
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                Console.WriteLine("");
                Console.WriteLine("---------LBRecovery Web Service returns error----------------");
                Console.WriteLine("---------\"Hard\" is user error \"Transient\" is system error----------------");
                Console.WriteLine("SoapException Message= " + ex.Message);
                Console.WriteLine("");
                Console.WriteLine("SoapException Category:Code:Message= " + ex.Detail.LastChild.InnerText);
                Console.WriteLine("");
                Console.WriteLine("SoapException XML String for all= " + ex.Detail.LastChild.OuterXml);
                Console.WriteLine("");
                Console.WriteLine("SoapException StackTrace= " + ex.StackTrace);
                Console.WriteLine("-------------------------");
                Console.WriteLine("");
            } catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("-------------------------");
                Console.WriteLine(" General Exception= " + ex.Message);
                Console.WriteLine(" General Exception-StackTrace= " + ex.StackTrace);
                Console.WriteLine("-------------------------");
            }
            finally
            {
                Console.ReadKey();
            }
        }
        public LabelRecoveryRequestModel PopulateRequestData(CustomSettings customSettings, string trackingNumber)
        {
            // UPS Security
            UsernameToken usernameToken = new UsernameToken();

            usernameToken.Username = customSettings.UPSSecurity_UserToken_Username;
            usernameToken.Password = customSettings.UPSSecurity_UserToken_Password;

            ServiceAccessToken serviceAccessToken = new ServiceAccessToken();

            serviceAccessToken.AccessLicenseNumber = customSettings.UPSSecurity_ServiceAccessToken_AccessLicenseNumber;

            UPSSecurity UPSSecurity = new UPSSecurity();

            UPSSecurity.UsernameToken      = usernameToken;
            UPSSecurity.ServiceAccessToken = serviceAccessToken;
            // UPS Security -END

            //  Label Specification
            LabelImageFormat labelImageFormat = new LabelImageFormat();

            labelImageFormat.Code = "GIF";

            LabelSpecification labelSpecification = new LabelSpecification();

            labelSpecification.LabelImageFormat = labelImageFormat;
            labelSpecification.HttpUserAgent    = "Mozilla/4.5";
            //  Label Specification - END

            Translate translate = new Translate();

            translate.LanguageCode = "eng";
            translate.DialectCode  = "US";
            translate.Code         = "01";

            LabelRecoveryRequest labelRecoveryRequest = new LabelRecoveryRequest();

            labelRecoveryRequest.LabelSpecification = labelSpecification;
            labelRecoveryRequest.Translate          = translate;
            labelRecoveryRequest.TrackingNumber     = trackingNumber;
            // the below tracking number is allowed on the UPS test environment.
            //labelRecoveryRequest.TrackingNumber = "1Z12345E8791315413";

            LabelRecoveryRequestModel labelRecoveryModel = new LabelRecoveryRequestModel();

            labelRecoveryModel.UPSSecurity          = UPSSecurity;
            labelRecoveryModel.LabelRecoveryRequest = labelRecoveryRequest;

            return(labelRecoveryModel);
        }
Пример #3
0
        public async Task <LabelRecoveryResponse> GetLabel(GetLabelParameter parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException(nameof(parameter));
            }

            if (parameter.Credentials == null)
            {
                throw new ArgumentNullException(nameof(parameter.Credentials));
            }

            var client   = _httpClientFactory.GetHttpClient();
            var security = new AccessRequestType
            {
                AccessLicenseNumber = parameter.Credentials.LicenseNumber,
                Password            = parameter.Credentials.Password,
                UserId = parameter.Credentials.UserName
            };
            var request = new LabelRecoveryRequest
            {
                Request = new RequestType
                {
                    RequestAction            = "LabelRecovery",
                    TransactionReferenceType = new TransactionReference
                    {
                        CustomerContext = "Your Test Case Summary Description",
                        XpciVersion     = "1.0014"
                    }
                },
                TrackingNumber = parameter.TrackingNumber
            };


            var serializerSecurity = new XmlSerializer(typeof(AccessRequestType));
            var serializerBody     = new XmlSerializer(typeof(LabelRecoveryRequest));
            var xmlSecurity        = "";
            var xmlBody            = "";

            using (var sww = new StringWriter())
            {
                using (var writer = XmlWriter.Create(sww))
                {
                    serializerSecurity.Serialize(writer, security);
                    xmlSecurity = sww.ToString();
                }
            }

            using (var sww = new StringWriter())
            {
                using (var writer = XmlWriter.Create(sww))
                {
                    serializerBody.Serialize(writer, request);
                    xmlBody = sww.ToString();
                }
            }

            var xml  = xmlSecurity + "" + xmlBody;
            var body = new StringContent(xml);
            var req  = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                Content    = body,
                RequestUri = new Uri(_labelRecovery)
            };
            var serializedContent = await client.SendAsync(req).ConfigureAwait(false);

            var res = await serializedContent.Content.ReadAsStringAsync();

            var deserializer = new XmlSerializer(typeof(LabelRecoveryResponse));

            using (TextReader reader = new StringReader(res))
            {
                return((LabelRecoveryResponse)deserializer.Deserialize(reader));
            }
        }