public async Task <Rate> GetRate(TaxJar taxJar, string zip) { //setting the api auth values RateResponse rateResponse = new RateResponse(); if (string.IsNullOrEmpty(zip)) { rateResponse.Rate = null; } else { try { await Task.Run(async() => { rateResponse = await taxJar.GetRate(zip); }); } catch (Exception ex) { System.Diagnostics.Debug.Write("Error {0}", ex.Message); } } return(rateResponse.Rate); }
private RateResponse CallUPSRateRequest(string scode, int Qty, int nrBoxes, int itemsInLastBox, string fullBoxWeight, int valuePerFullBox, int valuePerPartialBox, string partialBoxWeight, inv_detl details, decimal unitPrice, RateService upsService) { RateResponse rateResponse = new RateResponse(); try { RateRequest rateRequest = new RateRequest(); AddCustomerClassification(rateRequest); AddUpsSecurity(upsService); UPS_Shipping_Rate.UPSRateService.RequestType request = new RequestType(); String[] requestOption = { "Rate" }; request.RequestOption = requestOption; rateRequest.Request = request; ShipmentType shipment = new ShipmentType(); AddShipper(shipment); AddShipFromAddress(shipment); AddShipToAddress(shipment); UPS_Shipping_Rate.UPSRateService.CodeDescriptionType service = new UPS_Shipping_Rate.UPSRateService.CodeDescriptionType(); service.Code = scode.ToString(); shipment.Service = service; ShipmentRatingOptionsType optype = new ShipmentRatingOptionsType(); optype.NegotiatedRatesIndicator = string.Empty; shipment.ShipmentRatingOptions = optype; AddPackageArray(nrBoxes, itemsInLastBox, fullBoxWeight, partialBoxWeight, valuePerFullBox, valuePerPartialBox, details, shipment); AddInvoiceTotalType(Qty, unitPrice, shipment); rateRequest.Shipment = shipment; // ServicePointManager.ServerCertificateValidationCallback = ValidateRemoteCertificate; rateResponse = upsService.ProcessRate(rateRequest); } catch (Exception ex) { } return(rateResponse); }
public JsonResult GetShop(RateRequestViewModel model, string requestUrl = _rateRequestUri) { try { Shipper shipper = new Shipper { Name = model.RateRequest.Shipment.ShipFrom.Name, ShipperNumber = "132R1V", Address = new ShipperAddress { AddressLine = model.RateRequest.Shipment.ShipFrom.Address.AddressLine, City = model.RateRequest.Shipment.ShipFrom.Address.City, CountryCode = model.RateRequest.Shipment.ShipFrom.Address.CountryCode, StateProvinceCode = model.RateRequest.Shipment.ShipFrom.Address.StateProvinceCode, PostalCode = model.RateRequest.Shipment.ShipFrom.Address.PostalCode } }; model.RateRequest.Shipment.Shipper = shipper; model.RateRequest.Shipment.Shipper.Address.PostalCode = model.RateRequest.Shipment.Shipper.Address.PostalCode.Replace(" ", String.Empty); model.RateRequest.Shipment.ShipFrom.Address.PostalCode = model.RateRequest.Shipment.ShipFrom.Address.PostalCode.Replace(" ", String.Empty); model.RateRequest.Shipment.ShipTo.Address.PostalCode = model.RateRequest.Shipment.ShipTo.Address.PostalCode.Replace(" ", String.Empty); HttpContent httContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8); RateResponse resData = _ratingService.GetRate(requestUrl, httContent); return(Json(new { success = true, resData })); } catch (Exception ex) { return(Json(new { success = false, errorMessage = ex.ToString() })); } }
public RateResponse CallUPSRateRequest(string serviceCode, int Qty, int nrBoxes, int itemsInLastBox, string fullBoxWeight, int valuePerFullBox, int valuePerPartialBox, string partialBoxWeight, inv_detl details, string packagingTypeCode, string currencyCode, decimal unitPrice, bool isResidentialAddress)//, out string requestXML) { var upsService = new RateService(); var rateResponse = new RateResponse(); var rateRequest = new RateRequest(); AddCustomerClassification(rateRequest); AddUpsSecurity(upsService); var request = new RequestType(); String[] requestOption = { "Rate" }; request.RequestOption = requestOption; //this can be Rate or Shop rateRequest.Request = request; var shipment = new UPSRateService.ShipmentType(); AddShipper(shipment); AddShipFromAddress(shipment); AddShipToAddress(shipment, isResidentialAddress); var service = new CodeDescriptionType(); service.Code = serviceCode; shipment.Service = service; var optype = new UPSRateService.ShipmentRatingOptionsType(); optype.NegotiatedRatesIndicator = string.Empty; shipment.ShipmentRatingOptions = optype; AddPackageArray(nrBoxes, itemsInLastBox, fullBoxWeight, partialBoxWeight, valuePerFullBox, valuePerPartialBox, details, packagingTypeCode, currencyCode, shipment); AddInvoiceTotalType(Qty, unitPrice, shipment); rateRequest.Shipment = shipment; rateResponse = upsService.ProcessRate(rateRequest); return(rateResponse); }
public List <ShippingOption> GetShippingOptions() { var shippingOptions = new List <ShippingOption>(); try { var service = new RateService(); RateRequest request = CreateRateRequest(service); RateResponse rateResponse = service.ProcessRate(request); shippingOptions = ParseAnswer(rateResponse); } catch (System.Web.Services.Protocols.SoapException ex) { Debug.LogError(ex, false); } catch (System.ServiceModel.CommunicationException ex) { Debug.LogError(ex, false); } catch (Exception ex) { Debug.LogError(ex); } return(shippingOptions); }
public async Task <RateResponse> GetRatesAsync(string requestString, bool isDomestic = true) { var apiKey = isDomestic ? RATES_API_KEY_DOMESTIC : RATES_API_KEY_INTERNATIONAL; var responseStream = await _httpClient.GetStreamAsync($"?API={apiKey}&XML={requestString}"); return(await RateResponse.LoadAsync(responseStream, isDomestic)); }
public static IEnumerable <ShippingRule> ToModel(this RateResponse response, Currency currency) { response.ValidateResponse(); var rules = new List <ShippingRule>(); var order = response.Order[0]; foreach (var quote in order.Quotes) { var method = new ShippingRule { id = quote.method, name = quote.Service, cost = quote.Cost.value.ToString(), currency = quote.Cost.currency }; if (currency.code != "USD") { method.cost = CurrencyConverter.Instance.Convert("USD", currency.code, quote.Cost.value).ToString("n" + currency. decimalCount); } var min = quote.DeliveryEstimate.Minimum.value; var max = quote.DeliveryEstimate.Maximum.value; var timeunit = quote.DeliveryEstimate.Minimum.units; if (timeunit == "days") { timeunit = "day"; } else { Syslog.Write(string.Format("Unknown timeunit: {0}", timeunit)); } if (min == max) { if (min == 1) { method.deliveryEstimate = string.Format("1 {0}", timeunit.Substring(0, timeunit.Length)); } else { method.deliveryEstimate = string.Format("{0} {1}s", min, timeunit); } } else { method.deliveryEstimate = string.Format("{0} to {1} {2}s", min, max, timeunit); } rules.Add(method); } return(rules); }
public IActionResult RateResults() { ViewBag.Logout = "Logout"; string serializedRates = HttpContext.Session.GetString("rates"); RateResponse rateResults = JsonConvert.DeserializeObject <RateResponse>(serializedRates); ViewBag.Rates = from r in rateResults.Rates orderby r.DeliveryDays select r; return(View()); }
private void MapShipmentServiceDescription(RateResponse resData) { List <ShipmentService> listShipmentService = new List <ShipmentService>(); LoadServiceCodes(listShipmentService); foreach (var item in resData.RatedShipment) { item.Service.Description = listShipmentService.Where(m => String.Equals(m.ServiceCode, item.Service?.Code)).FirstOrDefault()?.ServiceDescription; } }
public override void OnException(HttpActionExecutedContext context) { var request = context.ActionContext.Request; var response = new RateResponse { returncode = 500, //temp assigning error code need to change 1 use for success err = context.Exception.Message //just sending message,details exception message may require other property }; context.Response = request.CreateResponse(HttpStatusCode.BadRequest, response); }
public static string GetShippingServiceName(this RateResponse response, string shippingMethod) { var order = response.Order[0]; var quote = order.Quotes.SingleOrDefault(x => x.method == shippingMethod); if (quote == null) { throw new Exception("Unable to find quote for method " + shippingMethod); } return(quote.Service); }
private void FormatRateResponse(JObject resObj, RateResponse resData, string requestUrl) { if (resObj != null && !String.IsNullOrEmpty(resObj.ToString())) { if (resObj.ContainsKey(typeof(RateResponse).Name)) { //Assign Response resData.Response = resObj[typeof(RateResponse).Name][typeof(Response).Name].ToObject <Response>(); //End Assign Response //Add Alert var responseObj = resObj[typeof(RateResponse).Name][typeof(Response).Name].ToObject <JObject>(); if (responseObj.ContainsKey(typeof(Alert).Name)) { resData.Response.ListAlert = new List <Alert>(); JToken alerts = responseObj[typeof(Alert).Name]; if (alerts.ToString().Contains("[")) { resData.Response.ListAlert.AddRange(alerts.ToObject <List <Alert> >()); } else { resData.Response.ListAlert.Add(alerts.ToObject <Alert>()); } } //End Add Alert RatedShipment ratedShipment; if (requestUrl.Contains(AppSettings.UpsConfiguration.UpsRatingType.Shop)) //Shop Type { //Add RatedShipment foreach (JObject item in resObj[typeof(RateResponse).Name][typeof(RatedShipment).Name].ToObject <List <JObject> >()) { ratedShipment = CreateRatedShipment(item); resData.RatedShipment.Add(ratedShipment); } //End Add RatedShipment } if (requestUrl.Contains(AppSettings.UpsConfiguration.UpsRatingType.Rate)) //Rate Type { //Add RatedShipment ratedShipment = CreateRatedShipment(resObj[typeof(RateResponse).Name][typeof(RatedShipment).Name].ToObject <JObject>()); resData.RatedShipment.Add(ratedShipment); //End Add RatedShipment } } } }
public static Cost GetCost(this RateResponse response, string shippingMethod) { response.ValidateResponse(); var order = response.Order[0]; var quote = order.Quotes.SingleOrDefault(x => x.method == shippingMethod); if (quote == null) { Syslog.Write("Unable to find quote for method " + shippingMethod); return(null); } return(quote.Cost); }
public void GetRate_EmptyZipTest() { TaxJar taxJar = new TaxJar(); RateResponse rateResponse = new RateResponse(); string zip = ""; var taxService = new TaxService.TaxService(); Task.Run(async() => { rateResponse.Rate = await taxService.GetRate(taxJar, zip); }); Assert.IsNull(rateResponse.Rate); }
private async Task <IEnumerable <RateResponse> > PerformRequest(string requestUrl) { var client = _httpClientFactory.GetRateHttpClient(GetType()); using var response = await client.GetAsync(requestUrl); if (!response.IsSuccessStatusCode) { return(Enumerable.Empty <RateResponse>()); } await using var stream = await response.Content.ReadAsStreamAsync(); if (stream.Length == 0) { return(Enumerable.Empty <RateResponse>()); } using var reader = XmlReader.Create(stream, new XmlReaderSettings { Async = true }); RateResponse current = null; string from = null; string to = null; while (await reader.ReadAsync()) { switch (reader.NodeType) { case XmlNodeType.Element: if (reader.Name.Equals("Valute")) { current = new RateResponse(); } if (reader.Name.Equals("CharCode")) { current.To = Currency.GetCurrency(reader.Value); } break; } } return(new List <RateResponse>()); }
public RateResponse GetRate(RequestModel model) { if (model == null) { return(new RateResponse() { err = "Invalid request", returncode = 400, timestamp = DateTime.UtcNow.Ticks }); } decimal amount = model.amount; if (amount == 0) { amount = 1; } string code = model.currencyCode.ToUpper(); List <string> fromCurrancy = new List <string> { "USD", "GBP", "AUD", "EUR", "CAD", "SGD" }; if (code == string.Empty || !fromCurrancy.Contains(code)) { code = "USD"; } var ratePublisherService = Bootstrapper.Locate <IRatePublisherService>(); var rate = ratePublisherService.GetRate(code); if (rate == null) { return(new RateResponse() { err = "No data found", returncode = 404, timestamp = DateTime.UtcNow.Ticks }); } var result = new RateResponse(); result.SourceCurrency = rate.FromCurrancy; result.ConversionRate = rate.ToAmount; result.Amount = amount; result.Total = amount * rate.ToAmount; result.returncode = 1; result.err = "success"; result.timestamp = DateTime.UtcNow.Ticks; return(result); }
public IActionResult SaveRate(Dictionary <string, string> data) { if (data != null) { string serializedRates = HttpContext.Session.GetString("rates"); RateResponse rateResponse = JsonConvert.DeserializeObject <RateResponse>(serializedRates); foreach (Rate rate in rateResponse.Rates) { if (rate.RateId == data["rateId"]) { DbConnector.Execute($"INSERT INTO rate(rateRequestId, shipmentId, rateId, userId, carrierId, shippingAmount, deliveryDays, serviceType, createdAt, updatedAt) VALUES('{rateResponse.RateRequestId}', '{rateResponse.ShipmentId}', '{rate.RateId}', '{Request.Cookies["userCookie"]}', '{rate.CarrierId}', '{rate.ShippingAmount.Amount}', '{rate.DeliveryDays}', '{rate.ServiceType}', '{DateTime.Now.ToString()}', '{DateTime.Now.ToString()}')"); return(RedirectToAction("RateResults")); } } } return(RedirectToAction("RateResults")); }
public void GetRate_SantaMonicaZipTest() { TaxJar taxJar = new TaxJar(); RateResponse rateResponse = new RateResponse(); //zip of city of Santa Monica string zip = "90404"; var taxService = new TaxService.TaxService(); Task.Run(async() => { rateResponse.Rate = await taxService.GetRate(taxJar, zip); }); Assert.IsTrue(rateResponse.Rate.City.Equals("SANTA MONICA")); }
private async Task <AverageRateResponse> GetAverageResponse(Pair pair, DateTime dateTimeUtc) { dateTimeUtc = dateTimeUtc.ToUniversalTime(); var rates = new RateResponse[] { await GetRateResponse(pair, Market.Lykke, dateTimeUtc), await GetRateResponse(pair, Market.Kraken, dateTimeUtc), await GetRateResponse(pair, Market.Bitfinex, dateTimeUtc) }; // remove rates that do not have rate and are older by 10 minutes var validRates = rates .Where(f => f.Rate.HasValue && f.CreatedUtc.HasValue && dateTimeUtc.Subtract(f.CreatedUtc.Value).Minutes < 10) .OrderBy(f => f.Rate) .ToList(); if (!validRates.Any()) { return(null); } if (validRates.Count() >= 3) { // remove more distant rate var firtDiff = validRates[1].Rate - validRates[0].Rate; var lastDiff = validRates[validRates.Count() - 1].Rate - validRates[validRates.Count() - 2].Rate; if (firtDiff > lastDiff) { validRates.Remove(validRates.First()); } else { validRates.Remove(validRates.Last()); } } return(new AverageRateResponse { Pair = Enum.GetName(typeof(Pair), pair), AverageRate = validRates.Average(f => f.Rate), Rates = rates }); }
public async Task <IActionResult> CheckTaxRate(Rate rate) { RateResponse rateResponse = new RateResponse(); using (var httpClient = new HttpClient()) { string url = string.Format("https://api.taxjar.com/v2/rates/{0}", rate.Zip); httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "2ddb34bc5852bd9acf8ed22e95076484"); using (var response = await httpClient.GetAsync(url)) { string apiResponse = await response.Content.ReadAsStringAsync(); rateResponse = JsonConvert.DeserializeObject <RateResponse>(apiResponse); } } return(View("TaxResponse", rateResponse)); }
public IHttpActionResult Post([FromBody] RateRequest rateReq) { RateResponse response = new RateResponse(); //use this link to compare api result https://currency-api.appspot.com/ if (!ModelState.IsValid) { throw new Exception("Parameter validation failed"); } //this will going to replace when i will do custome model binder to assign default value if (rateReq == null) { rateReq = new RateRequest { Amount = 1, CurrencyCode = "USD" } } ; //default if null //TODO : Dependency Injection for web api As it Is Important for Test Driven Environment //temporary I resolve with AutoFac Container var currencyService = EngineContext.Current.ContainerManager.Resolve <ICurrencyService>(); var sourceCurrency = currencyService.GetCurrencyByCode(rateReq.CurrencyCode); //calcultaing rate for given amount var rate = currencyService.ConvertToPrimaryExchangeRateCurrency(rateReq.Amount, sourceCurrency); //creating valid rate conversion response response.ConversionRate = Math.Round((1.000000m / sourceCurrency.Rate), 2); response.Total = Math.Round(rate, 2); response.returncode = ApiMessages.SuccessCode; response.SourceCurrency = sourceCurrency.CurrencyCode; response.err = ApiMessages.SuccessMessage; response.TimeStamp = (int)sourceCurrency.TimeStamp; response.Amount = rateReq.Amount; return(Ok(response)); } }
public RateResponse GetRate(string requestUrl, HttpContent httpContent) { var resObj = _upsApiService.GetResultFromUpsApi(requestUrl, httpContent); RateResponse resData = new RateResponse() { RatedShipment = new List <RatedShipment>() }; if (resObj.IsSuccessStatusCode) { FormatRateResponse(resObj.JObject, resData, requestUrl); MapShipmentServiceDescription(resData); } else { } return(resData); }
public async void GetRateUpdates(RateRequest rateRequest) { ClientWebSocket = new ClientWebSocket(); try { await ClientWebSocket.ConnectAsync(new Uri($"wss://10.0.2.2:7001/ratenotify"), CancellationToken.None); await SendData( new RateRequest( new List <ExchangeRate> { new ExchangeRate(Currency.USD), new ExchangeRate(Currency.ZAR) })); _timer.Start(); var readBuffer = new ArraySegment <byte>(new byte[8192]); while (ClientWebSocket.State == WebSocketState.Open) { RateResponse rateUpdate = null; var result = await ClientWebSocket.ReceiveAsync(readBuffer, CancellationToken.None); var str = Encoding.Default.GetString(readBuffer.Array, readBuffer.Offset, result.Count); rateUpdate = JsonConvert.DeserializeObject <RateResponse>(str); if (rateUpdate != null) { RateUpdateReceived?.Invoke(this, rateUpdate); } } } catch (TaskCanceledException) { Debug.Write("WebSocket closed"); } catch (Exception ex) { Debug.Write(ex.Message); } }
public RateResponse GetRate(Package package) { var url = "?API=RateV2&XML=<RateV2Request USERID=\"{0}\"><Package ID=\"0\"><Service>{1}</Service><ZipOrigination>{2}</ZipOrigination><ZipDestination>{3}</ZipDestination><Pounds>{4}</Pounds><Ounces>{5}</Ounces><Container>{6}</Container><Size>{7}</Size></Package></RateV2Request>"; var lb = package.WeightInOunces / 16; var oz = package.WeightInOunces % 16; var container = package.PackageType.ToString().Replace("_", " "); if (container == "None") { url = url.Replace("<Container>{6}</Container>", ""); } var fromZip = package.FromAddress.Zip; if (!string.IsNullOrEmpty(package.OriginZipcode)) { fromZip = package.OriginZipcode; } url = GetURL() + url; url = string.Format(url, _userid, package.ServiceType.ToString(), fromZip, package.ToAddress.Zip, lb, oz, container, package.PackageSize.ToString().Replace("_", " ")); var xml = _uspsApiClient.DownloadString(url); if (xml.Contains("<Error>")) { var idx1 = xml.IndexOf("<Description>") + 13; var idx2 = xml.IndexOf("</Description>"); var l = xml.Length; var errDesc = xml.Substring(idx1, idx2 - idx1); throw new ErrorUspsApiResponseException(null); } return(RateResponse.FromXml(xml)); }
private List <ShippingOption> ParseAnswer(RateResponse rateResponse) { var res = new List <ShippingOption>(); var enabledServices = EnabledService; foreach (var rateDetail in rateResponse.RatedShipment) { var shippingOption = new ShippingOption(); if (!String.IsNullOrEmpty(enabledServices) && !enabledServices.Contains(GetServiceName(rateDetail.Service.Code))) { continue; } string serviceName = GetServiceName(rateDetail.Service.Code); shippingOption.Name = serviceName; var shippingRate = (Rate > 0) ? rateDetail.TotalCharges.MonetaryValue.TryParseFloat() * Rate + Extracharge : rateDetail.TotalCharges.MonetaryValue.TryParseFloat() + Extracharge; shippingOption.Rate = shippingRate; res.Add(shippingOption); } return(res); }
public IMC.API.DTO.Rate GetTaxRateByLocation(APIRequestData apiRequest, int zipCode) { APIResponseData apiResponse = new APIResponseData(); string urlData = string.Empty; apiRequest.VendorName = "Taxjar"; apiRequest.HttpRequestType = HttpRequestTypeEnum.GET; apiRequest.PostURL = apiRequest.BaseURL + "rates/" + zipCode; //Execuring HTTP GET Action to make API call to Vendor API ApiHelper.ExecuteHttpAction(apiRequest, out apiResponse); RateResponse rateResp = JsonConvert.DeserializeObject <RateResponse>(apiResponse.ResponseContent); var toDTOMapperConfig = new MapperConfiguration(cfg => cfg.CreateMap <RateResponseAttributes, IMC.API.DTO.Rate>()); var toDTOMapper = toDTOMapperConfig.CreateMapper(); IMC.API.DTO.Rate rate = toDTOMapper.Map <IMC.API.DTO.Rate>(rateResp.Rate); toDTOMapperConfig = null; toDTOMapper = null; return(rate); }
public async Task <RateResponse> GetRate(string zip) { RateResponse rateResponse = new RateResponse(); string url = this.apiUrl + "rates/" + zip; try { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.apiKey); HttpResponseMessage httpResponse = await client.GetAsync(apiUrl); if (httpResponse.IsSuccessStatusCode) { rateResponse = JsonConvert.DeserializeObject <RateResponse>(httpResponse.Content.ToString()); } } } catch (Exception ex) { System.Diagnostics.Debug.Write("Error {0}", ex.Message); } return(rateResponse); }
private List<ShippingOption> ParseAnswer(RateResponse rateResponse) { var res = new List<ShippingOption>(); var enabledServices = EnabledService; foreach (var rateDetail in rateResponse.RatedShipment) { var shippingOption = new ShippingOption(); if (!String.IsNullOrEmpty(enabledServices) && !enabledServices.Contains(GetServiceName(rateDetail.Service.Code))) { continue; } string serviceName = GetServiceName(rateDetail.Service.Code); shippingOption.Name = serviceName; var shippingRate = (Rate > 0) ? rateDetail.TotalCharges.MonetaryValue.TryParseFloat() * Rate + Extracharge : rateDetail.TotalCharges.MonetaryValue.TryParseFloat() + Extracharge; shippingOption.Rate = shippingRate; res.Add(shippingOption); } return res; }
public static double UPSEstimatedRate(Person shipto, ProductCollection cart) { double temp = 0.0; //return 0.0 if something is wrong try { RateService rate = new RateService(); RateRequest rateRequest = new RateRequest(); UPSSecurity upss = new UPSSecurity(); UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken(); upssSvcAccessToken.AccessLicenseNumber = ConfigurationManager.AppSettings["UPSAccessLicenseNumber"]; upss.ServiceAccessToken = upssSvcAccessToken; UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken(); upssUsrNameToken.Username = ConfigurationManager.AppSettings["UPSUserName"]; upssUsrNameToken.Password = ConfigurationManager.AppSettings["UPSPassword"]; upss.UsernameToken = upssUsrNameToken; rate.UPSSecurityValue = upss; RequestType request = new RequestType(); String[] requestOption = { "Rate" }; request.RequestOption = requestOption; rateRequest.Request = request; ShipmentType shipment = new ShipmentType(); ShipperType shipper = new ShipperType(); shipper.ShipperNumber = "54A177"; //***EAC Intentionally hard-coded. DO NOT REPLACE WITH ONE IN WEB.CONFIG! UPSRateService.AddressType shipperAddress = new UPSRateService.AddressType(); String[] addressLine = { ConfigurationManager.AppSettings["LMStreet"] }; shipperAddress.AddressLine = addressLine; shipperAddress.City = ConfigurationManager.AppSettings["LMCity"]; shipperAddress.StateProvinceCode = ConfigurationManager.AppSettings["LMState"]; shipperAddress.PostalCode = ConfigurationManager.AppSettings["LMZip"]; shipperAddress.CountryCode = ConfigurationManager.AppSettings["LMCountry"]; shipperAddress.AddressLine = addressLine; shipper.Address = shipperAddress; shipment.Shipper = shipper; ShipFromType shipFrom = new ShipFromType(); //UPSRateService.AddressType shipFromAddress = new UPSRateService.AddressType(); //shipFromAddress.AddressLine = shipperAddress.AddressLine; //shipFromAddress.City = shipperAddress.City; //shipFromAddress.StateProvinceCode = shipperAddress.StateProvinceCode; //shipFromAddress.PostalCode = shipperAddress.PostalCode; //shipFromAddress.CountryCode = shipperAddress.CountryCode; shipFrom.Address = shipperAddress; shipment.ShipFrom = shipFrom; ShipToType shipTo = new ShipToType(); ShipToAddressType shipToAddress = new ShipToAddressType(); String[] addressLine1 = { shipto.Addr1 }; shipToAddress.AddressLine = addressLine1; shipToAddress.City = shipto.City; shipToAddress.StateProvinceCode = shipto.State; shipToAddress.PostalCode = shipto.Zip5; shipToAddress.CountryCode = shipto.Country; shipTo.Address = shipToAddress; shipment.ShipTo = shipTo; CodeDescriptionType service = new CodeDescriptionType(); //Below code uses dummy date for reference. Please udpate as required. //service.Code = "03"; //01:nextdayair 02;2ndday 03:ground 12:3dayselect service.Code = DAL2.DAL.GetShippingMethodValuebyID(cart.ShipMethod); shipment.Service = service; PackageType package = new PackageType(); PackageWeightType packageWeight = new PackageWeightType(); packageWeight.Weight = cart.TotalWeight.ToString(); CodeDescriptionType uom = new CodeDescriptionType(); uom.Code = "LBS"; uom.Description = "pounds"; packageWeight.UnitOfMeasurement = uom; package.PackageWeight = packageWeight; CodeDescriptionType packType = new CodeDescriptionType(); packType.Code = "02"; //02:pkgcustomer package.PackagingType = packType; PackageType[] pkgArray = { package }; shipment.Package = pkgArray; rateRequest.Shipment = shipment; System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); RateResponse rateResponse = rate.ProcessRate(rateRequest); UPSNoelWrite("The transaction was a " + rateResponse.Response.ResponseStatus.Description); UPSNoelWrite("Total Shipment Charges " + rateResponse.RatedShipment[0].TotalCharges.MonetaryValue + rateResponse.RatedShipment[0].TotalCharges.CurrencyCode); temp = Double.Parse(rateResponse.RatedShipment[0].TotalCharges.MonetaryValue); } catch (Exception ex) { temp = 0.0; } return(temp); //catch (System.Web.Services.Protocols.SoapException ex) //{ // UPSNoelWrite(""); // UPSNoelWrite("---------Rate Web Service returns error----------------"); // UPSNoelWrite("---------\"Hard\" is user error \"Transient\" is system error----------------"); // UPSNoelWrite("SoapException Message= " + ex.Message); // UPSNoelWrite(""); // UPSNoelWrite("SoapException Category:Code:Message= " + ex.Detail.LastChild.InnerText); // UPSNoelWrite(""); // UPSNoelWrite("SoapException XML String for all= " + ex.Detail.LastChild.OuterXml); // UPSNoelWrite(""); // UPSNoelWrite("SoapException StackTrace= " + ex.StackTrace); // UPSNoelWrite("-------------------------"); // UPSNoelWrite(""); //} //catch (System.ServiceModel.CommunicationException ex) //{ // UPSNoelWrite(""); // UPSNoelWrite("--------------------"); // UPSNoelWrite("CommunicationException= " + ex.Message); // UPSNoelWrite("CommunicationException-StackTrace= " + ex.StackTrace); // UPSNoelWrite("-------------------------"); // UPSNoelWrite(""); //} //catch (Exception ex) //{ // UPSNoelWrite(""); // UPSNoelWrite("-------------------------"); // UPSNoelWrite(" Generaal Exception= " + ex.Message); // UPSNoelWrite(" Generaal Exception-StackTrace= " + ex.StackTrace); // UPSNoelWrite("-------------------------"); //} //finally //{ // //Console.ReadKey(); //} }
public ActionResult Index() { UPSSecurity upss = new UPSSecurity(); UPSSecurityServiceAccessToken upssSvcAccessToken = new UPSSecurityServiceAccessToken(); upssSvcAccessToken.AccessLicenseNumber = "3D6A1DD5F39023B5"; upss.ServiceAccessToken = upssSvcAccessToken; UPSSecurityUsernameToken upssUsrNameToken = new UPSSecurityUsernameToken(); upssUsrNameToken.Username = "******"; upssUsrNameToken.Password = "******"; upss.UsernameToken = upssUsrNameToken; RateRequest rateRequest = new RateRequest(); RequestType request = new RequestType(); String[] requestOption = { "Shoptimeintransit" }; request.RequestOption = requestOption; rateRequest.Request = request; ShipmentType shipment = new ShipmentType(); TimeInTransitRequestType Time_Tran = new TimeInTransitRequestType(); var packbillcode = "03"; Time_Tran.PackageBillType = packbillcode; shipment.DeliveryTimeInformation = Time_Tran; ShipperType shipper = new ShipperType(); // shipper.ShipperNumber = "Your Shipper Number"; var shipperAddress = new AddressType(); // String[] addressLine = { "5555 main", "4 Case Cour", "Apt 3B" }; //shipperAddress.AddressLine = addressLine; shipperAddress.City = "San Diego"; shipperAddress.PostalCode = "92101"; shipperAddress.StateProvinceCode = "CA"; shipperAddress.CountryCode = "US"; // shipperAddress.AddressLine = addressLine; shipper.Address = shipperAddress; shipment.Shipper = shipper; ShipFromType shipFrom = new ShipFromType(); var shipFromAddress = new ShipAddressType(); //shipFromAddress.AddressLine = addressLine; shipFromAddress.City = "San Diego"; shipFromAddress.PostalCode = "92101"; shipFromAddress.StateProvinceCode = "CA"; shipFromAddress.CountryCode = "US"; shipFrom.Address = shipFromAddress; shipment.ShipFrom = shipFrom; ShipToType shipTo = new ShipToType(); ShipToAddressType shipToAddress = new ShipToAddressType(); //String[] addressLine1 = { "10 E. Ritchie Way", "2", "Apt 3B" }; //shipToAddress.AddressLine = addressLine1; shipToAddress.City = "Canton"; shipToAddress.PostalCode = "02021"; shipToAddress.StateProvinceCode = "MA"; shipToAddress.CountryCode = "US"; shipTo.Address = shipToAddress; shipment.ShipTo = shipTo; CodeDescriptionType service = new CodeDescriptionType(); //Below code uses dummy date for reference. Please udpate as required. service.Code = "02"; shipment.Service = service; PackageType package = new PackageType(); PackageWeightType packageWeight = new PackageWeightType(); packageWeight.Weight = "1"; CodeDescriptionType uom = new CodeDescriptionType(); uom.Code = "LBS"; uom.Description = "pounds"; packageWeight.UnitOfMeasurement = uom; package.PackageWeight = packageWeight; CodeDescriptionType packType = new CodeDescriptionType(); packType.Code = "02"; package.PackagingType = packType; PackageType[] pkgArray = { package }; shipment.Package = pkgArray; rateRequest.Shipment = shipment; //System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11; //This line will ensure the latest security protocol for consuming the web service call. // Console.WriteLine(rateRequest); var client = new RatePortTypeClient(); RateResponse rateResponse = client.ProcessRate(upss, rateRequest); var model = new Rate_Package() { Response = rateResponse }; return(View(model)); }
static void Main() { try { RateService rate = new RateService(); RateRequest rateRequest = new RateRequest(); 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; rate.UPSSecurityValue = upss; RequestType request = new RequestType(); String[] requestOption = { "Rate" }; request.RequestOption = requestOption; rateRequest.Request = request; ShipmentType shipment = new ShipmentType(); ShipperType shipper = new ShipperType(); shipper.ShipperNumber = "Your Shipper Number"; RateWSSample.RateWebReference.AddressType shipperAddress = new RateWSSample.RateWebReference.AddressType(); String[] addressLine = { "5555 main", "4 Case Cour", "Apt 3B" }; shipperAddress.AddressLine = addressLine; shipperAddress.City = "Roswell"; shipperAddress.PostalCode = "30076"; shipperAddress.StateProvinceCode = "GA"; shipperAddress.CountryCode = "US"; shipperAddress.AddressLine = addressLine; shipper.Address = shipperAddress; shipment.Shipper = shipper; ShipFromType shipFrom = new ShipFromType(); RateWSSample.RateWebReference.AddressType shipFromAddress = new RateWSSample.RateWebReference.AddressType(); shipFromAddress.AddressLine = addressLine; shipFromAddress.City = "Roswell"; shipFromAddress.PostalCode = "30076"; shipFromAddress.StateProvinceCode = "GA"; shipFromAddress.CountryCode = "US"; shipFrom.Address = shipFromAddress; shipment.ShipFrom = shipFrom; ShipToType shipTo = new ShipToType(); ShipToAddressType shipToAddress = new ShipToAddressType(); String[] addressLine1 = { "10 E. Ritchie Way", "2", "Apt 3B" }; shipToAddress.AddressLine = addressLine1; shipToAddress.City = "Plam Springs"; shipToAddress.PostalCode = "92262"; shipToAddress.StateProvinceCode = "CA"; shipToAddress.CountryCode = "US"; shipTo.Address = shipToAddress; shipment.ShipTo = shipTo; CodeDescriptionType service = new CodeDescriptionType(); //Below code uses dummy date for reference. Please udpate as required. service.Code = "02"; shipment.Service = service; PackageType package = new PackageType(); PackageWeightType packageWeight = new PackageWeightType(); packageWeight.Weight = "125"; CodeDescriptionType uom = new CodeDescriptionType(); uom.Code = "LBS"; uom.Description = "pounds"; packageWeight.UnitOfMeasurement = uom; package.PackageWeight = packageWeight; CodeDescriptionType packType = new CodeDescriptionType(); packType.Code = "02"; package.PackagingType = packType; PackageType[] pkgArray = { package }; shipment.Package = pkgArray; rateRequest.Shipment = shipment; System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); Console.WriteLine(rateRequest); RateResponse rateResponse = rate.ProcessRate(rateRequest); Console.WriteLine("The transaction was a " + rateResponse.Response.ResponseStatus.Description); Console.WriteLine("Total Shipment Charges " + rateResponse.RatedShipment[0].TotalCharges.MonetaryValue + rateResponse.RatedShipment[0].TotalCharges.CurrencyCode); Console.ReadKey(); } catch (System.Web.Services.Protocols.SoapException ex) { Console.WriteLine(""); Console.WriteLine("---------Rate 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 (System.ServiceModel.CommunicationException ex) { Console.WriteLine(""); Console.WriteLine("--------------------"); Console.WriteLine("CommunicationException= " + ex.Message); Console.WriteLine("CommunicationException-StackTrace= " + ex.StackTrace); Console.WriteLine("-------------------------"); Console.WriteLine(""); } catch (Exception ex) { Console.WriteLine(""); Console.WriteLine("-------------------------"); Console.WriteLine(" Generaal Exception= " + ex.Message); Console.WriteLine(" Generaal Exception-StackTrace= " + ex.StackTrace); Console.WriteLine("-------------------------"); } finally { Console.ReadKey(); } }