Search code examples
c#fedex

DotNetShipping rates are always empty - FedEx


Using this package, DotNetShipping, and my rates for FedEx (I haven't used any other providers) are always empty. Did some googling and I didn't come up w/ any answers.

.NET 4

  • Address 1 (first parameter for Address object) does have a valid address.
  • No errors.
  • FedEx account has been created and the (4) variables from the web.config have the correct values.

Testing code:

    public string fedexKey = ConfigurationManager.AppSettings["FedExKey"];
    public string fedexPassword = ConfigurationManager.AppSettings["FedExPassword"];
    public string fedexAccountNumber = ConfigurationManager.AppSettings["FedExAccountNumber"];
    public string fedexMeterNumber = ConfigurationManager.AppSettings["FedExMeterNumber"];


    public decimal Test()
    {
        var packages = new List<Package>();
        packages.Add(new Package(12, 12, 12, 35, 150));
        packages.Add(new Package(4, 4, 6, 15, 250));

        var origin = new DotNetShipping.Address("address here", string.Empty, string.Empty, "Cary", "North Carolina", "27513", "US");
        var destination = new DotNetShipping.Address("address here", string.Empty, string.Empty, "Smyrna", "Georgia", "30082", "US"); // US Address

        var rateManager = new RateManager();
        rateManager.AddProvider(new FedExProvider(fedexKey, fedexPassword, fedexAccountNumber, fedexMeterNumber));

        DotNetShipping.Shipment shipment = rateManager.GetRates(origin, destination, packages);

        foreach (Rate rate in shipment.Rates)  // Rates are empty 
        {
            var p = rate;
        }

        return 0;
    }

I do have the documentation for FedEx's API, and I looked over the code from the package and it looks similar.

If there's a better FREE shipping rate package out there I will attempt to use that as well.


Solution

  • After downloading the source code and debugging it, it's important to note that when you're testing, set useProduction to false =\

    rateManager.AddProvider(new FedExProvider(fedexKey, fedexPassword, fedexAccountNumber, fedexMeterNumber, false));