Problem : Fedex Shipping Service Error Mesages — Plz Help Me Understand
I am developing an application using FEDEX SHIPPING SERVICE for shipping from my eCommerce website in ASP.NET .
While developing for some of the SERVICES i am getting ERROR MESSAGES and i couldn’t figure out the problem.
Following are the SERVICE TYPE and ERROR MESSAGES :
————————–
Service Type:INTERNATIONAL_ECONOMY
Error:Invalid Shipper load and count
Service Type:INTERNATIONAL_PRIORIT
Error:Invalid Shipper load and count
Service Type:INTERNATIONAL_FIRST
Error:Service type not valid with commitment
Service Type:EUROPE_FIRST_INTERNAT
Error:Service type not valid with commitment
Service Type:GROUND_HOME_DELIVERY
Error:Shipments for home delivery service must be designated as residential delivery also.
————————–
Please help me to resolve the problem.
(FEDEX have provided VB.NET samples also.)
Solution : Fedex Shipping Service Error Mesages — Plz Help Me Understand
Here is the code that is working for International First.
I had the same account number for all account number variables.
I put a comment of CHANGE where I changed some of the sample code.
If you actually use the International Freight, let me know and maybe later this week I can try and find the additional fields you need.
EUROPE FIRST is for intra-European shipments only. I don’t have any addresses that qualify to test, but this code should work for that also if both the shipper and receiver are in Europe with addresses that qualify.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: |
Imports ShipWebServiceClient.ShipServiceWebReference Imports System.Web.Services.Protocols Imports System.IO Module Module1 Sub Main() Dim request As ProcessShipmentRequest = New ProcessShipmentRequest() ' Build a request object ' request.WebAuthenticationDetail = New WebAuthenticationDetail() request.WebAuthenticationDetail.UserCredential = New WebAuthenticationCredential() request.WebAuthenticationDetail.UserCredential.Key = "XXX" ' Replace "!!!!XXX" with the Key request.WebAuthenticationDetail.UserCredential.Password = "XXX" ' Replace "!!!!XXX" with the Password ' request.ClientDetail = New ClientDetail() request.ClientDetail.AccountNumber = "XXX" ' Replace "!!!!XXX" with clients account number request.ClientDetail.MeterNumber = "XXX" ' Replace "!!!!XXX" with clients meter number ' request.TransactionDetail = New TransactionDetail() request.TransactionDetail.CustomerTransactionId = "***International Ground Shipment v3 Request using VB.NET***" ' The client will get the same value back in the response ' request.Version = New VersionId() ' WSDL version information, value is automatically set from wsdl ' request.RequestedShipment = New RequestedShipment() request.RequestedShipment.ShipTimestamp = DateTime.Now ' Ship date and time request.RequestedShipment.DropoffType = DropoffType.REGULAR_PICKUP request.RequestedShipment.ServiceType = ServiceType.INTERNATIONAL_FIRST ' Service types are STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND ... request.RequestedShipment.PackagingType = PackagingType.YOUR_PACKAGING ' Packaging type FEDEX_BOK, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ... ' request.RequestedShipment.Shipper = New Party() ' Sender information request.RequestedShipment.Shipper.AccountNumber = "XXX" ' Replace "!!!!XXX" with clients account number request.RequestedShipment.Shipper.Contact = New Contact() request.RequestedShipment.Shipper.Contact.PersonName = "Sender Name" request.RequestedShipment.Shipper.Contact.CompanyName = "Sender Company Name" request.RequestedShipment.Shipper.Contact.PhoneNumber = "888-888-8888" ' request.RequestedShipment.Shipper.Address = New Address() request.RequestedShipment.Shipper.Address.StreetLines = New String(0) {"PUT IN VALID ADDRESS"} '!!!! request.RequestedShipment.Shipper.Address.City = "CITY" request.RequestedShipment.Shipper.Address.StateOrProvinceCode = "ST" request.RequestedShipment.Shipper.Address.PostalCode = "99999" request.RequestedShipment.Shipper.Address.CountryCode = "US" ' request.RequestedShipment.Recipient = New Party() ' Recipient information request.RequestedShipment.Recipient.Contact = New Contact() request.RequestedShipment.Recipient.Contact.PersonName = "Recipient Name" request.RequestedShipment.Recipient.Contact.CompanyName = "Recipient Company Name" request.RequestedShipment.Recipient.Contact.PhoneNumber = "9012637906" ' request.RequestedShipment.Recipient.Address = New Address() request.RequestedShipment.Recipient.Address.StreetLines = New String(0) {"VALID ADDRESS"} request.RequestedShipment.Recipient.Address.City = "CITY" request.RequestedShipment.Recipient.Address.StateOrProvinceCode = "" request.RequestedShipment.Recipient.Address.PostalCode = "" request.RequestedShipment.Recipient.Address.CountryCode = "" request.RequestedShipment.Recipient.Address.Residential = False ' request.RequestedShipment.ShippingChargesPayment = New Payment() ' Payment information request.RequestedShipment.ShippingChargesPayment.PaymentType = PaymentType.SENDER request.RequestedShipment.ShippingChargesPayment.Payor = New Payor() request.RequestedShipment.ShippingChargesPayment.Payor.AccountNumber = "XXX" ' Replace "!!!!XXX" with payors account number request.RequestedShipment.ShippingChargesPayment.Payor.CountryCode = "US" ' request.RequestedShipment.InternationalDetail = New InternationalDetail() ' International details request.RequestedShipment.InternationalDetail.DutiesPayment = New Payment() request.RequestedShipment.InternationalDetail.DutiesPayment.PaymentType = PaymentType.SENDER request.RequestedShipment.InternationalDetail.DutiesPayment.Payor = New Payor() request.RequestedShipment.InternationalDetail.DutiesPayment.Payor.AccountNumber = "XXX" ' Replace "!!!!XXX" with payors account number request.RequestedShipment.InternationalDetail.DutiesPayment.Payor.CountryCode = "US" request.RequestedShipment.InternationalDetail.CustomsValue = New Money() request.RequestedShipment.InternationalDetail.CustomsValue.Amount = 10.0 request.RequestedShipment.InternationalDetail.CustomsValue.Currency = "USD" ' request.RequestedShipment.InternationalDetail.Commodities = New Commodity(0) {New Commodity()} ' Commodity details request.RequestedShipment.InternationalDetail.Commodities(0).NumberOfPieces = 1 request.RequestedShipment.InternationalDetail.Commodities(0).Description = "Books" request.RequestedShipment.InternationalDetail.Commodities(0).CountryOfManufacture = "US" request.RequestedShipment.InternationalDetail.Commodities(0).Weight = New Weight() request.RequestedShipment.InternationalDetail.Commodities(0).Weight.Value = 10.0 ' CHANGE request.RequestedShipment.InternationalDetail.Commodities(0).Weight.Units = WeightUnits.LB request.RequestedShipment.InternationalDetail.Commodities(0).Quantity = 1 request.RequestedShipment.InternationalDetail.Commodities(0).QuantityUnits = "EA" request.RequestedShipment.InternationalDetail.Commodities(0).UnitPrice = New Money() request.RequestedShipment.InternationalDetail.Commodities(0).UnitPrice.Amount = 10.0 'CHANGE request.RequestedShipment.InternationalDetail.Commodities(0).UnitPrice.Currency = "USD" request.RequestedShipment.InternationalDetail.Commodities(0).CustomsValue = New Money() request.RequestedShipment.InternationalDetail.Commodities(0).CustomsValue.Amount = 10.0 'CHANGE request.RequestedShipment.InternationalDetail.Commodities(0).CustomsValue.Currency = "USD" ' request.RequestedShipment.LabelSpecification = New LabelSpecification() ' Label specification request.RequestedShipment.LabelSpecification.ImageType = LabelSpecificationImageType.PNG ' Image types PDF, PNG, DPL, ... request.RequestedShipment.LabelSpecification.ImageTypeSpecified = True request.RequestedShipment.LabelSpecification.LabelFormatType = LabelFormatType.LABEL_DATA_ONLY request.RequestedShipment.LabelSpecification.LabelFormatTypeSpecified = True ' request.RequestedShipment.RateRequestTypes = New RateRequestType(0) {RateRequestType.ACCOUNT} ' Rate types requested LIST, MULTIWEIGHT, ... request.RequestedShipment.PackageCount = 1 ' request.RequestedShipment.RequestedPackages = New RequestedPackage(0) {New RequestedPackage()} request.RequestedShipment.RequestedPackages(0).Weight = New Weight() ' Package weight information request.RequestedShipment.RequestedPackages(0).Weight.Value = 10.0 'CHANGE request.RequestedShipment.RequestedPackages(0).Weight.Units = WeightUnits.LB request.RequestedShipment.RequestedPackages(0).CustomerReferences = New CustomerReference(0) {New CustomerReference()} ' Reference details request.RequestedShipment.RequestedPackages(0).CustomerReferences(0).CustomerReferenceType = CustomerReferenceType.CUSTOMER_REFERENCE request.RequestedShipment.RequestedPackages(0).CustomerReferences(0).Value = "TC007_07_PT1_ST01_PK01_SNDUS_R" ' Dim shipService As ShipService = New ShipServiceWebReference.ShipService() ' Initialize the service ' Try Dim reply As ProcessShipmentReply = shipService.processShipment(request) ' This is the call to the ship web service passing in a request object and returning a reply object If (reply.HighestSeverity = NotificationSeverityType.SUCCESS) Then ' check if the call was successful Console.WriteLine("--- Package details ---") For Each packageDetail As CompletedPackageDetail In reply.CompletedShipmentDetail.CompletedPackageDetails ' Package details / Rating information for each package Console.WriteLine("Tracking # {0}", packageDetail.TrackingId.TrackingNumber) Console.WriteLine("--- Rate details ---") For Each packageRateDetail As PackageRateDetail In packageDetail.PackageRating.PackageRateDetails If (Not packageRateDetail.BillingWeight Is Nothing) Then Console.WriteLine(" Billing weight {0} {1}", packageRateDetail.BillingWeight.Value, packageRateDetail.BillingWeight.Units) End If If (Not packageRateDetail.BaseCharge Is Nothing) Then Console.WriteLine(" Base charge {0} {1}", packageRateDetail.BaseCharge.Amount, packageRateDetail.BaseCharge.Currency) End If If (Not packageRateDetail.NetCharge Is Nothing) Then Console.WriteLine(" Net charge {0} {1}", packageRateDetail.NetCharge.Amount, packageRateDetail.NetCharge.Currency) End If For Each surcharge As Surcharge In packageRateDetail.Surcharges ' Individual surcharge for each package Console.WriteLine("{0} surcharge {1} {2}", surcharge.SurchargeType, surcharge.Amount.Amount, surcharge.Amount.Currency) Next If (Not packageRateDetail.TotalSurcharges Is Nothing) Then Console.WriteLine("Total surcharge {0} {1}", packageRateDetail.TotalSurcharges.Amount, packageRateDetail.TotalSurcharges.Currency) End If Next If (Not packageDetail.Label.Parts(0).Image Is Nothing) Then 'Save Label Buffer Dim FileName As String FileName = "c:\" + packageDetail.TrackingId.TrackingNumber + ".pdf" Dim LabelFile As New FileStream(FileName, FileMode.Create) LabelFile.Write(packageDetail.Label.Parts(0).Image, 0, packageDetail.Label.Parts(0).Image.Length) LabelFile.Close() 'Display Label in Acrobat Dim info As New System.Diagnostics.ProcessStartInfo(FileName) info.Verb = "open" info.UseShellExecute = True System.Diagnostics.Process.Start(info) End If Next Else For Each notification As Notification In reply.Notifications Console.WriteLine(notification.Message) Next End If Catch e As SoapException Console.WriteLine(e.Detail.InnerText) Catch e As Exception Console.WriteLine(e.Message) End Try Console.WriteLine("Press any key to quit !") Console.ReadKey() End Sub End Module |