public ActionResult <object> ShippingLabelAsync(ShippoShippingLabel model) { APIResource resource = new APIResource("shippo_test_4b21ff87309dbb951077d18f554f1ffc1d1f9988"); Hashtable parameters = new Hashtable(); parameters.Add("shipment", model.shipment); parameters.Add("carrier_account", model.carrier_account); parameters.Add("servicelevel_token", model.servicelevel_token); var shippingLabel = resource.CreateTransaction(parameters); return(shippingLabel); }
static void Main(string[] args) { // replace with your Shippo Token // don't have one? get more info here // (https://goshippo.com/docs/#overview) APIResource resource = new APIResource ("<Shippo Token>"); // to address Hashtable toAddressTable = new Hashtable (); toAddressTable.Add ("object_purpose", "PURCHASE"); toAddressTable.Add ("name", "Mr. Hippo"); toAddressTable.Add ("company", "Shippo"); toAddressTable.Add ("street1", "215 Clayton St."); toAddressTable.Add ("city", "San Francisco"); toAddressTable.Add ("state", "CA"); toAddressTable.Add ("zip", "94117"); toAddressTable.Add ("country", "US"); toAddressTable.Add ("phone", "+1 555 341 9393"); toAddressTable.Add ("email", "*****@*****.**"); // from address Hashtable fromAddressTable = new Hashtable (); fromAddressTable.Add ("object_purpose", "PURCHASE"); fromAddressTable.Add ("name", "Ms Hippo"); fromAddressTable.Add ("company", "San Diego Zoo"); fromAddressTable.Add ("street1", "2920 Zoo Drive"); fromAddressTable.Add ("city", "San Diego"); fromAddressTable.Add ("state", "CA"); fromAddressTable.Add ("zip", "92101"); fromAddressTable.Add ("country", "US"); fromAddressTable.Add ("email", "*****@*****.**"); fromAddressTable.Add ("phone", "+1 619 231 1515"); fromAddressTable.Add ("metadata", "Customer ID 123456"); // parcel Hashtable parcelTable = new Hashtable (); parcelTable.Add ("length", "5"); parcelTable.Add ("width", "5"); parcelTable.Add ("height", "5"); parcelTable.Add ("distance_unit", "in"); parcelTable.Add ("weight", "2"); parcelTable.Add ("mass_unit", "lb"); // shipment Hashtable shipmentTable = new Hashtable (); shipmentTable.Add ("address_to", toAddressTable); shipmentTable.Add ("address_from", fromAddressTable); shipmentTable.Add ("parcel", parcelTable); shipmentTable.Add ("object_purpose", "PURCHASE"); shipmentTable.Add ("async", false); // create Shipment object Console.WriteLine ("Creating Shipment object.."); Shipment shipment = resource.CreateShipment (shipmentTable); // select desired shipping rate according to your business logic // we simply select the first rate in this example Rate rate = shipment.RatesList[0]; Console.WriteLine ("Getting shipping label.."); Hashtable transactionParameters = new Hashtable (); transactionParameters.Add ("rate", rate.ObjectId); transactionParameters.Add ("async", false); Transaction transaction = resource.CreateTransaction (transactionParameters); if (((String) transaction.ObjectStatus).Equals ("SUCCESS", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine ("Label url : " + transaction.LabelURL); Console.WriteLine ("Tracking number : " + transaction.TrackingNumber); } else { Console.WriteLine ("An Error has occured while generating your label. Messages : " + transaction.Messages); } }
static void Main(string[] args) { // replace with your Shippo Token // don't have one? get more info here // (https://goshippo.com/docs/#overview) APIResource resource = new APIResource("<Shippo Token>"); // to address Hashtable toAddressTable = new Hashtable(); toAddressTable.Add("object_purpose", "PURCHASE"); toAddressTable.Add("name", "Mr. Hippo"); toAddressTable.Add("company", "Shippo"); toAddressTable.Add("street1", "215 Clayton St."); toAddressTable.Add("city", "San Francisco"); toAddressTable.Add("state", "CA"); toAddressTable.Add("zip", "94117"); toAddressTable.Add("country", "US"); toAddressTable.Add("phone", "+1 555 341 9393"); toAddressTable.Add("email", "*****@*****.**"); // from address Hashtable fromAddressTable = new Hashtable(); fromAddressTable.Add("object_purpose", "PURCHASE"); fromAddressTable.Add("name", "Ms Hippo"); fromAddressTable.Add("company", "San Diego Zoo"); fromAddressTable.Add("street1", "2920 Zoo Drive"); fromAddressTable.Add("city", "San Diego"); fromAddressTable.Add("state", "CA"); fromAddressTable.Add("zip", "92101"); fromAddressTable.Add("country", "US"); fromAddressTable.Add("email", "*****@*****.**"); fromAddressTable.Add("phone", "+1 619 231 1515"); fromAddressTable.Add("metadata", "Customer ID 123456"); // parcel Hashtable parcelTable = new Hashtable(); parcelTable.Add("length", "5"); parcelTable.Add("width", "5"); parcelTable.Add("height", "5"); parcelTable.Add("distance_unit", "in"); parcelTable.Add("weight", "2"); parcelTable.Add("mass_unit", "lb"); // shipment Hashtable shipmentTable = new Hashtable(); shipmentTable.Add("address_to", toAddressTable); shipmentTable.Add("address_from", fromAddressTable); shipmentTable.Add("parcel", parcelTable); shipmentTable.Add("object_purpose", "PURCHASE"); shipmentTable.Add("async", false); // create Shipment object Console.WriteLine("Creating Shipment object.."); Shipment shipment = resource.CreateShipment(shipmentTable); // select desired shipping rate according to your business logic // we simply select the first rate in this example Rate rate = shipment.RatesList[0]; Console.WriteLine("Getting shipping label.."); Hashtable transactionParameters = new Hashtable(); transactionParameters.Add("rate", rate.ObjectId); transactionParameters.Add("async", false); Transaction transaction = resource.CreateTransaction(transactionParameters); if (((String)transaction.ObjectStatus).Equals("SUCCESS", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Label url : " + transaction.LabelURL); Console.WriteLine("Tracking number : " + transaction.TrackingNumber); } else { Console.WriteLine("An Error has occured while generating your label. Messages : " + transaction.Messages); } }
public object Post(TransactionDTO request) { // Get the first rate in the rates results. // Customize this based on your business logic. //Rate rate = shipment.RatesList[]; var context = new shippingcoContext(); if (request.QuoteId != "" && request.QuoteId != null && request.UserId != "" && request.UserId != null && request.RateId != "" && request.RateId != null) { Hashtable transactionParameters = new Hashtable(); transactionParameters.Add("rate", request.RateId); transactionParameters.Add("async", false); try{ // Purchase the desired rate. Transaction transaction = resource.CreateTransaction(transactionParameters); if (((String)transaction.Status).Equals("SUCCESS", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Label url: " + transaction.LabelURL); Console.WriteLine("Tracking number: " + transaction.TrackingNumber); var shipment = resource.RetrieveShipment(request.QuoteId); var rate = resource.RetrieveRate(request.RateId); var from = new ShippmentUnit(); var to = new ShippmentUnit(); var parcel = new MyApp.DataAccess.DataAccess.Parcel(); var order = new Orders(); var apiShipmentObject = (Address)((JObject)shipment.AddressFrom).ToObject(typeof(Address)); from.StreetNumber = apiShipmentObject.StreetNo.ToString(); from.StreetAddress = apiShipmentObject.Street1.ToString(); from.City = apiShipmentObject.City.ToString(); from.Province = apiShipmentObject.State.ToString(); from.PostalCode = apiShipmentObject.Zip.ToString(); from.Country = apiShipmentObject.Country.ToString(); from.Name = apiShipmentObject.Name.ToString(); from.Company = apiShipmentObject.Company.ToString(); apiShipmentObject = (Address)((JObject)shipment.AddressTo).ToObject(typeof(Address)); to.StreetNumber = apiShipmentObject.StreetNo.ToString(); to.StreetAddress = apiShipmentObject.Street1.ToString(); to.City = apiShipmentObject.City.ToString(); to.Province = apiShipmentObject.State.ToString(); to.PostalCode = apiShipmentObject.Zip.ToString(); to.Country = apiShipmentObject.Country.ToString(); to.Name = apiShipmentObject.Name.ToString(); to.Company = apiShipmentObject.Company.ToString(); var apiParcelObject = (Shippo.Parcel)((JObject)shipment.Parcels[0]).ToObject(typeof(Shippo.Parcel)); parcel.Height = Decimal.Parse(apiParcelObject.Height.ToString()); parcel.Width = Decimal.Parse(apiParcelObject.Width.ToString()); parcel.Weight = Decimal.Parse(apiParcelObject.Weight.ToString()); parcel.Length = Decimal.Parse(apiParcelObject.Length.ToString()); parcel.MassUnit = apiParcelObject.MassUnit.ToString(); parcel.DistanceUnit = apiParcelObject.DistanceUnit.ToString(); context.ShippmentUnit.Add(from); context.ShippmentUnit.Add(to); context.Parcel.Add(parcel); context.SaveChanges(); order.UserId = Int32.Parse(request.UserId); order.FromId = from.Id; order.ToId = to.Id; order.ParcelId = parcel.Id; order.Date = (DateTime)shipment.ShipmentDate; order.Amount = Decimal.Parse(rate.Amount.ToString()); order.Currency = rate.Currency.ToString(); order.Provider = rate.Provider.ToString(); order.ServiceLevel = rate.Servicelevel.Name.ToString(); order.Estimate = rate.EstimatedDays.ToString(); order.Image = rate.ProviderImage200.ToString(); order.LabelUrl = transaction.LabelURL.ToString(); order.TrackingNumber = transaction.TrackingNumber.ToString(); order.TrackingUrl = transaction.TrackingUrlProvider.ToString(); //order.Eta = transaction..tostring(); context.Orders.Add(order); context.SaveChanges(); //var response = "{\"success\": \"success\"} " ; //return response; var response = "{\"success\": \"transaction Sccess\" ," + "\"label\" : \"" + transaction.LabelURL.ToString() + "\" ," + "\"transaction\" : \"" + transaction.TrackingNumber.ToString() + "\"}"; return(response); } else { Console.WriteLine("Error generating label. Messages: " + transaction.Messages); var response = "{\"error\": \"exception caught by server\" ," + "\"details\" : " + transaction.Messages.ToString() + "}"; return(response); } } catch (Exception e) { var response = "{\"error\": \"exception caught by server\" ," + "\"details\" : " + e.Message.ToString() + "}"; return(response); } } if (request.UserId != "" && request.QuoteId == null && request.RateId == null) { var responseList = new List <TransactionDTOResponse>(); var from = new ShippmentUnit(); var to = new ShippmentUnit(); var parcel = new MyApp.DataAccess.DataAccess.Parcel(); var client = new Client(); var order = new Orders(); var user = new Users(); var userAuth = new UserAuth(); var orders = context.Orders .Where(q => q.UserId.ToString() == request.UserId) .ToList(); foreach (var q in orders) { to = context.ShippmentUnit .Where(u => u.Id.ToString() == q.ToId.ToString()) .ToList().First(); from = context.ShippmentUnit .Where(u => u.Id.ToString() == q.FromId.ToString()) .ToList().First(); parcel = context.Parcel .Where(p => p.Id.ToString() == q.ParcelId.ToString()) .ToList().First(); // client = context.Client // .Where(c => c.Id.ToString() == request.UserId) // .ToList().First(); var rlist = new TransactionDTOResponse(); rlist.from = from; rlist.to = to; rlist.parcel = parcel; rlist.order = q; responseList.Add(rlist); } var response = "{\"success\": \"success\" ," + "\"orders\" : " + JSON.stringify(responseList) + "}"; return(response); } return(null); }