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 |


