Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) UPS Rate RequestDemonstrates making a call to the UPS Rating Package web service. Note: This example uses a feature introduced in Chilkat v9.5.0.76.
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim success As Boolean Dim http As New Chilkat.Http ' This is the testing endpoint for the Rate Package JSON REST API: Dim url As String = "https://wwwcie.ups.com/rest/Rate" ' Send an HTTP POST request with the following JSON body: ' { ' "UPSSecurity": { ' "UsernameToken": { ' "Username": "UPS_USERNAME", ' "Password": "UPS_PASSWORD" ' }, ' "ServiceAccessToken": { ' "AccessLicenseNumber": "UPS_ACCESS_KEY" ' } ' }, ' "RateRequest": { ' "Request": { ' "RequestOption": "Rate", ' "TransactionReference": { ' "CustomerContext": "Your Customer Context" ' } ' }, ' "Shipment": { ' "Shipper": { ' "Name": "Apple Store, Michigan Ave", ' "ShipperNumber": "1234", ' "Address": { ' "AddressLine": [ ' "401 North Michigan Avenue" ' ], ' "City": "Chicago", ' "StateProvinceCode": "IL", ' "PostalCode": "60611", ' "CountryCode": "US" ' } ' }, ' "ShipTo": { ' "Name": "Apple HQ", ' "Address": { ' "AddressLine": [ ' "One Infinite Loop" ' ], ' "City": "Cupertino", ' "StateProvinceCode": "CA", ' "PostalCode": "95014", ' "CountryCode": "US" ' } ' }, ' "ShipFrom": { ' "Name": "Apple Store, Michigan Ave", ' "Address": { ' "AddressLine": [ ' "401 North Michigan Avenue" ' ], ' "City": "Chicago", ' "StateProvinceCode": "IL", ' "PostalCode": "60611", ' "CountryCode": "US" ' } ' }, ' "Service": { ' "Code": "03", ' "Description": "Service Code Description" ' }, ' "Package": { ' "PackagingType": { ' "Code": "02", ' "Description": "Rate" ' }, ' "Dimensions": { ' "UnitOfMeasurement": { ' "Code": "IN", ' "Description": "inches" ' }, ' "Length": "5", ' "Width": "4", ' "Height": "3" ' }, ' "PackageWeight": { ' "UnitOfMeasurement": { ' "Code": "Lbs", ' "Description": "pounds" ' }, ' "Weight": "1" ' } ' }, ' "ShipmentRatingOptions": { ' "NegotiatedRatesIndicator": "" ' } ' } ' } ' } ' Build the above JSON. ' Note: The PathPrefix feature was added in Chilkat v9.5.0.76 Dim json As New Chilkat.JsonObject json.UpdateString("UPSSecurity.UsernameToken.Username","UPS_USERNAME") json.UpdateString("UPSSecurity.UsernameToken.Password","UPS_PASSWORD") json.UpdateString("UPSSecurity.ServiceAccessToken.AccessLicenseNumber","UPS_ACCESS_KEY") json.UpdateString("RateRequest.Request.RequestOption","Rate") json.UpdateString("RateRequest.Request.TransactionReference.CustomerContext","Your Customer Context") json.PathPrefix = "RateRequest.Shipment.Shipper." json.UpdateString("Name","Apple Store, Michigan Ave") json.UpdateString("ShipperNumber","1234") json.PathPrefix = "RateRequest.Shipment.Shipper.Address." json.UpdateString("AddressLine[0]","401 North Michigan Avenue") json.UpdateString("City","Chicago") json.UpdateString("StateProvinceCode","IL") json.UpdateString("PostalCode","60611") json.UpdateString("CountryCode","US") json.PathPrefix = "" json.UpdateString("RateRequest.Shipment.ShipTo.Name","Apple HQ") json.PathPrefix = "RateRequest.Shipment.ShipTo.Address." json.UpdateString("AddressLine[0]","One Infinite Loop") json.UpdateString("City","Cupertino") json.UpdateString("StateProvinceCode","CA") json.UpdateString("PostalCode","95014") json.UpdateString("CountryCode","US") json.PathPrefix = "" json.UpdateString("RateRequest.Shipment.ShipFrom.Name","Apple Store, Michigan Ave") json.PathPrefix = "RateRequest.Shipment.ShipFrom.Address." json.UpdateString("AddressLine[0]","401 North Michigan Avenue") json.UpdateString("City","Chicago") json.UpdateString("StateProvinceCode","IL") json.UpdateString("PostalCode","60611") json.UpdateString("CountryCode","US") json.PathPrefix = "" json.UpdateString("RateRequest.Shipment.Service.Code","03") json.UpdateString("RateRequest.Shipment.Service.Description","Service Code Description") json.PathPrefix = "RateRequest.Shipment.Package.PackagingType." json.UpdateString("Code","02") json.UpdateString("Description","Rate") json.PathPrefix = "RateRequest.Shipment.Package.Dimensions." json.UpdateString("UnitOfMeasurement.Code","IN") json.UpdateString("UnitOfMeasurement.Description","inches") json.UpdateString("Length","5") json.UpdateString("Width","4") json.UpdateString("Height","3") json.PathPrefix = "RateRequest.Shipment.Package.PackageWeight." json.UpdateString("UnitOfMeasurement.Code","Lbs") json.UpdateString("UnitOfMeasurement.Description","pounds") json.UpdateString("Weight","1") json.PathPrefix = "" json.UpdateString("RateRequest.Shipment.ShipmentRatingOptions.NegotiatedRatesIndicator","") json.EmitCompact = False Debug.WriteLine(json.Emit()) Dim sb As New Chilkat.StringBuilder Dim resp As Chilkat.HttpResponse = Await http.PostJson3Async(url,"application/json",json) If (http.LastMethodSuccess <> True) Then Debug.WriteLine(http.LastErrorText) Exit Sub End If Debug.WriteLine("status = " & resp.StatusCode) ' A 200 response status indicate success. If (resp.StatusCode <> 200) Then Debug.WriteLine(resp.BodyStr) Debug.WriteLine("Failed.") Exit Sub End If json.Load(resp.BodyStr) json.EmitCompact = False Debug.WriteLine(json.Emit()) ' Here is a sample response: ' { ' "RateResponse": { ' "Response": { ' "ResponseStatus": { ' "Code": "1", ' "Description": "Success" ' }, ' "Alert": [ ' { ' "Code": "110971", ' "Description": "Your invoice may vary from the displayed reference rates" ' }, ' { ' "Code": "119084", ' "Description": "Missing / Invalid Shipper Number. Returned rates are Retail Rates." ' }, ' { ' "Code": "120900", ' "Description": "User Id and Shipper Number combination is not qualified to receive negotiated rates" ' } ' ], ' "TransactionReference": { ' "CustomerContext": "Your Customer Context" ' } ' }, ' "RatedShipment": { ' "Service": { ' "Code": "03", ' "Description": "" ' }, ' "RatedShipmentAlert": [ ' { ' "Code": "120900", ' "Description": "User Id and Shipper Number combination is not qualified to receive negotiated rates." ' }, ' { ' "Code": "110971", ' "Description": "Your invoice may vary from the displayed reference rates" ' }, ' { ' "Code": "119084", ' "Description": "Missing / Invalid Shipper Number. Returned rates are Retail Rates." ' } ' ], ' "BillingWeight": { ' "UnitOfMeasurement": { ' "Code": "LBS", ' "Description": "Pounds" ' }, ' "Weight": "1.0" ' }, ' "TransportationCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "11.04" ' }, ' "ServiceOptionsCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "0.00" ' }, ' "TotalCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "11.04" ' }, ' "RatedPackage": { ' "TransportationCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "11.04" ' }, ' "ServiceOptionsCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "0.00" ' }, ' "TotalCharges": { ' "CurrencyCode": "USD", ' "MonetaryValue": "11.04" ' }, ' "Weight": "1.0", ' "BillingWeight": { ' "UnitOfMeasurement": { ' "Code": "LBS", ' "Description": "Pounds" ' }, ' "Weight": "1.0" ' } ' } ' } ' } ' } ' ' Use the online tool at Generate JSON Parsing Code ' to generate JSON parsing code. Dim i As Integer Dim count_i As Integer Dim statusCode As String = json.StringOf("RateResponse.Response.ResponseStatus.Code") Dim statusDescription As String = json.StringOf("RateResponse.Response.ResponseStatus.Description") Dim customerContext As String = json.StringOf("RateResponse.Response.TransactionReference.CustomerContext") Dim serviceCode As String = json.StringOf("RateResponse.RatedShipment.Service.Code") Dim serviceDescription As String = json.StringOf("RateResponse.RatedShipment.Service.Description") Dim billingWeightUnitOfMeasurementCode As String = json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Code") Dim billingWeightUnitOfMeasurementDescription As String = json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Description") Dim billingWeightWeight As String = json.StringOf("RateResponse.RatedShipment.BillingWeight.Weight") Dim transportationChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.TransportationCharges.CurrencyCode") Dim transportationChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.TransportationCharges.MonetaryValue") Dim serviceOptionsChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.CurrencyCode") Dim serviceOptionsChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.MonetaryValue") Dim totalChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.TotalCharges.CurrencyCode") Dim totalChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.TotalCharges.MonetaryValue") Dim ratedPackageTransportationChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.CurrencyCode") Dim ratedPackageTransportationChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.MonetaryValue") Dim ratedPackageServiceOptionsChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.CurrencyCode") Dim ratedPackageServiceOptionsChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.MonetaryValue") Dim ratedPackageTotalChargesCurrencyCode As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.CurrencyCode") Dim ratedPackageTotalChargesMonetaryValue As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.MonetaryValue") Dim ratedPackageWeight As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.Weight") Dim ratedPackageBillingWeightUnitOfMeasurementCode As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Code") Dim ratedPackageBillingWeightUnitOfMeasurementDescription As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Description") Dim ratedPackageBillingWeightWeight As String = json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.Weight") Dim Code As String Dim Description As String i = 0 count_i = json.SizeOfArray("RateResponse.Response.Alert") While i < count_i json.I = i Code = json.StringOf("RateResponse.Response.Alert[i].Code") Description = json.StringOf("RateResponse.Response.Alert[i].Description") i = i + 1 End While i = 0 count_i = json.SizeOfArray("RateResponse.RatedShipment.RatedShipmentAlert") While i < count_i json.I = i Code = json.StringOf("RateResponse.RatedShipment.RatedShipmentAlert[i].Code") Description = json.StringOf("RateResponse.RatedShipment.RatedShipmentAlert[i].Description") i = i + 1 End While |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.