コード例 #1
0
ファイル: CheckoutApiController.cs プロジェクト: jtomas2/.NET
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
        }