Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Xojo Plugin) 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 url = "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 success = json.UpdateString("UPSSecurity.UsernameToken.Username","UPS_USERNAME") success = json.UpdateString("UPSSecurity.UsernameToken.Password","UPS_PASSWORD") success = json.UpdateString("UPSSecurity.ServiceAccessToken.AccessLicenseNumber","UPS_ACCESS_KEY") success = json.UpdateString("RateRequest.Request.RequestOption","Rate") success = json.UpdateString("RateRequest.Request.TransactionReference.CustomerContext","Your Customer Context") json.PathPrefix = "RateRequest.Shipment.Shipper." success = json.UpdateString("Name","Apple Store, Michigan Ave") success = json.UpdateString("ShipperNumber","1234") json.PathPrefix = "RateRequest.Shipment.Shipper.Address." success = json.UpdateString("AddressLine[0]","401 North Michigan Avenue") success = json.UpdateString("City","Chicago") success = json.UpdateString("StateProvinceCode","IL") success = json.UpdateString("PostalCode","60611") success = json.UpdateString("CountryCode","US") json.PathPrefix = "" success = json.UpdateString("RateRequest.Shipment.ShipTo.Name","Apple HQ") json.PathPrefix = "RateRequest.Shipment.ShipTo.Address." success = json.UpdateString("AddressLine[0]","One Infinite Loop") success = json.UpdateString("City","Cupertino") success = json.UpdateString("StateProvinceCode","CA") success = json.UpdateString("PostalCode","95014") success = json.UpdateString("CountryCode","US") json.PathPrefix = "" success = json.UpdateString("RateRequest.Shipment.ShipFrom.Name","Apple Store, Michigan Ave") json.PathPrefix = "RateRequest.Shipment.ShipFrom.Address." success = json.UpdateString("AddressLine[0]","401 North Michigan Avenue") success = json.UpdateString("City","Chicago") success = json.UpdateString("StateProvinceCode","IL") success = json.UpdateString("PostalCode","60611") success = json.UpdateString("CountryCode","US") json.PathPrefix = "" success = json.UpdateString("RateRequest.Shipment.Service.Code","03") success = json.UpdateString("RateRequest.Shipment.Service.Description","Service Code Description") json.PathPrefix = "RateRequest.Shipment.Package.PackagingType." success = json.UpdateString("Code","02") success = json.UpdateString("Description","Rate") json.PathPrefix = "RateRequest.Shipment.Package.Dimensions." success = json.UpdateString("UnitOfMeasurement.Code","IN") success = json.UpdateString("UnitOfMeasurement.Description","inches") success = json.UpdateString("Length","5") success = json.UpdateString("Width","4") success = json.UpdateString("Height","3") json.PathPrefix = "RateRequest.Shipment.Package.PackageWeight." success = json.UpdateString("UnitOfMeasurement.Code","Lbs") success = json.UpdateString("UnitOfMeasurement.Description","pounds") success = json.UpdateString("Weight","1") json.PathPrefix = "" success = json.UpdateString("RateRequest.Shipment.ShipmentRatingOptions.NegotiatedRatesIndicator","") json.EmitCompact = False System.DebugLog(json.Emit()) Dim sb As New Chilkat.StringBuilder Dim resp As Chilkat.HttpResponse resp = http.PostJson3(url,"application/json",json) If (http.LastMethodSuccess <> True) Then System.DebugLog(http.LastErrorText) Return End If System.DebugLog("status = " + Str(resp.StatusCode)) // A 200 response status indicate success. If (resp.StatusCode <> 200) Then System.DebugLog(resp.BodyStr) System.DebugLog("Failed.") Return End If success = json.Load(resp.BodyStr) json.EmitCompact = False System.DebugLog(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 Int32 Dim count_i As Int32 Dim statusCode As String statusCode = json.StringOf("RateResponse.Response.ResponseStatus.Code") Dim statusDescription As String statusDescription = json.StringOf("RateResponse.Response.ResponseStatus.Description") Dim customerContext As String customerContext = json.StringOf("RateResponse.Response.TransactionReference.CustomerContext") Dim serviceCode As String serviceCode = json.StringOf("RateResponse.RatedShipment.Service.Code") Dim serviceDescription As String serviceDescription = json.StringOf("RateResponse.RatedShipment.Service.Description") Dim billingWeightUnitOfMeasurementCode As String billingWeightUnitOfMeasurementCode = json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Code") Dim billingWeightUnitOfMeasurementDescription As String billingWeightUnitOfMeasurementDescription = json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Description") Dim billingWeightWeight As String billingWeightWeight = json.StringOf("RateResponse.RatedShipment.BillingWeight.Weight") Dim transportationChargesCurrencyCode As String transportationChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.TransportationCharges.CurrencyCode") Dim transportationChargesMonetaryValue As String transportationChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.TransportationCharges.MonetaryValue") Dim serviceOptionsChargesCurrencyCode As String serviceOptionsChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.CurrencyCode") Dim serviceOptionsChargesMonetaryValue As String serviceOptionsChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.MonetaryValue") Dim totalChargesCurrencyCode As String totalChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.TotalCharges.CurrencyCode") Dim totalChargesMonetaryValue As String totalChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.TotalCharges.MonetaryValue") Dim ratedPackageTransportationChargesCurrencyCode As String ratedPackageTransportationChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.CurrencyCode") Dim ratedPackageTransportationChargesMonetaryValue As String ratedPackageTransportationChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.MonetaryValue") Dim ratedPackageServiceOptionsChargesCurrencyCode As String ratedPackageServiceOptionsChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.CurrencyCode") Dim ratedPackageServiceOptionsChargesMonetaryValue As String ratedPackageServiceOptionsChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.MonetaryValue") Dim ratedPackageTotalChargesCurrencyCode As String ratedPackageTotalChargesCurrencyCode = json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.CurrencyCode") Dim ratedPackageTotalChargesMonetaryValue As String ratedPackageTotalChargesMonetaryValue = json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.MonetaryValue") Dim ratedPackageWeight As String ratedPackageWeight = json.StringOf("RateResponse.RatedShipment.RatedPackage.Weight") Dim ratedPackageBillingWeightUnitOfMeasurementCode As String ratedPackageBillingWeightUnitOfMeasurementCode = json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Code") Dim ratedPackageBillingWeightUnitOfMeasurementDescription As String ratedPackageBillingWeightUnitOfMeasurementDescription = json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Description") Dim ratedPackageBillingWeightWeight As String ratedPackageBillingWeightWeight = 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 Wend 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 Wend |
© 2000-2023 Chilkat Software, Inc. All Rights Reserved.