Option Strict Off
Option Explicit On
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Collections
Imports System.Web.Services.Protocols
Imports RateWebServiceClient.RateWebReference
' Sample code to call the FedEx Rate v5 Web Service
' Tested with Microsoft Visual Studio 2005 professional Edition
Module Module1
Sub Main()
Dim request As RateRequest = New RateRequest() ' Build a RateRequest 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 = "*** Rate Request v6 using VB.NET ***" ' This is a reference field for the customer. Any value can be used and will be provided 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.PRIORITY_OVERNIGHT ' 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.TotalWeight = New Weight() ' Total weight information
request.RequestedShipment.TotalWeight.Value = 50.0
request.RequestedShipment.TotalWeight.Units = WeightUnits.LB
request.RequestedShipment.Shipper = New Party() ' Sender information
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 = "0805522713"
request.RequestedShipment.Shipper.Address = New Address()
request.RequestedShipment.Shipper.Address.StreetLines = New String(0) {"Address Line 1"}
request.RequestedShipment.Shipper.Address.City = "Irving"
request.RequestedShipment.Shipper.Address.StateOrProvinceCode = "TX"
request.RequestedShipment.Shipper.Address.PostalCode = "75063"
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) {"Address Line 1"}
request.RequestedShipment.Recipient.Address.City = "Connecticut"
request.RequestedShipment.Recipient.Address.StateOrProvinceCode = "CT"
request.RequestedShipment.Recipient.Address.PostalCode = "06006"
request.RequestedShipment.Recipient.Address.CountryCode = "US"
request.RequestedShipment.Recipient.Address.Residential = True
'
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 clients account number
request.RequestedShipment.ShippingChargesPayment.Payor.CountryCode = "US"
'
Dim bCodShipment As Boolean
bCodShipment = False ' set to true to request COD shipment and print COD return label
If (bCodShipment) Then
request.RequestedShipment.SpecialServicesRequested = New ShipmentSpecialServicesRequested() ' Special service requested
request.RequestedShipment.SpecialServicesRequested.SpecialServiceTypes = New ShipmentSpecialServiceType(0) {ShipmentSpecialServiceType.COD} ' Special Services types COD, HOLD_AT_LOCATION, RESIDENTIAL DELIVERY, ...
request.RequestedShipment.SpecialServicesRequested.CodDetail = New CodDetail()
request.RequestedShipment.SpecialServicesRequested.CodDetail.CollectionType = CodCollectionType.ANY ' ANY, CASH, GUARANTEED_FUNDS
request.RequestedShipment.SpecialServicesRequested.CodCollectionAmount = New Money()
request.RequestedShipment.SpecialServicesRequested.CodCollectionAmount.Amount = 150
request.RequestedShipment.SpecialServicesRequested.CodCollectionAmount.Currency = "USD"
End If
'
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).SequenceNumber = 1
request.RequestedShipment.RequestedPackages(0).Weight = New Weight() ' Package weight information
request.RequestedShipment.RequestedPackages(0).Weight.Value = 50.0
request.RequestedShipment.RequestedPackages(0).Weight.Units = WeightUnits.LB
'
Dim rateService As RateService = New RateService() ' Initialize the service
'
Try
' This is the call to the web service passing in a RateRequest and returning a RateReply
Dim reply As RateReply = rateService.getRates(request) ' Service call
'
If ((Not reply.HighestSeverity = NotificationSeverityType.ERROR) And (Not reply.HighestSeverity = NotificationSeverityType.FAILURE)) Then ' check if the call was successful
If (Not reply.RateReplyDetails(0) Is Nothing) And (Not reply.RateReplyDetails(0).RatedShipmentDetails Is Nothing) Then
Dim j As Integer = 1
For Each ratedShipmentDetail As RatedShipmentDetail In reply.RateReplyDetails(0).RatedShipmentDetails
Console.WriteLine("")
Console.WriteLine("---Rated Shipment Detail for Rate Type {0}---", j) 'Shipment and package rates for each Rate Type
Console.WriteLine("")
If (Not ratedShipmentDetail.ShipmentRateDetail Is Nothing) Then
Console.WriteLine("Rate Type : " + ratedShipmentDetail.ShipmentRateDetail.RateType.ToString)
Console.WriteLine("")
Console.WriteLine("--- Shipment Rate Detail ---")
Console.WriteLine("")
If (Not ratedShipmentDetail.ShipmentRateDetail.TotalBillingWeight Is Nothing) Then ' Total weight of all packages
Console.WriteLine("Total billing weight {0} {1}", ratedShipmentDetail.ShipmentRateDetail.TotalBillingWeight.Value, ratedShipmentDetail.ShipmentRateDetail.TotalBillingWeight.Units)
End If
If (Not ratedShipmentDetail.ShipmentRateDetail.TotalSurcharges Is Nothing) Then ' Total Surcharges for all packages
Console.WriteLine(" Total surcharges {0} {1}", ratedShipmentDetail.ShipmentRateDetail.TotalSurcharges.Amount, ratedShipmentDetail.ShipmentRateDetail.TotalSurcharges.Currency)
End If
If (Not ratedShipmentDetail.ShipmentRateDetail.TotalNetCharge Is Nothing) Then ' TotalNetCharge is the Rate plus all surcharges for all packages
Console.WriteLine(" Total net charge {0} {1}", ratedShipmentDetail.ShipmentRateDetail.TotalNetCharge.Amount, ratedShipmentDetail.ShipmentRateDetail.TotalNetCharge.Currency)
End If
End If
If (Not ratedShipmentDetail.RatedPackages Is Nothing) Then
' This is weight, and charge per package
Console.WriteLine("--- Rated Package Detail ---")
Console.WriteLine("")
Dim p As Integer = 1
For Each ratedPackage As RatedPackageDetail In ratedShipmentDetail.RatedPackages
If (Not ratedPackage.PackageRateDetail Is Nothing) Then
Console.WriteLine("Package {0}", p)
Console.WriteLine("Billing weight {0} {1}", ratedPackage.PackageRateDetail.BillingWeight.Value, ratedPackage.PackageRateDetail.BillingWeight.Units)
Console.WriteLine(" Base charge {0} {1}", ratedPackage.PackageRateDetail.BaseCharge.Amount, ratedPackage.PackageRateDetail.BaseCharge.Currency)
For Each surcharge As Surcharge In ratedPackage.PackageRateDetail.Surcharges
Console.WriteLine("{0} surcharge {1} {2}", surcharge.SurchargeType.ToString(), surcharge.Amount.Amount, surcharge.Amount.Currency)
Next
Console.WriteLine(" Net charge {0} {1}", ratedPackage.PackageRateDetail.NetCharge.Amount, ratedPackage.PackageRateDetail.NetCharge.Currency)
p = p + 1
End If
Next
j = j + 1
End If
Next
End If
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
Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.
”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.
Our community of experts have been thoroughly vetted for their expertise and industry experience.