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
(PowerShell) 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.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = New-Object Chilkat.Http # This is the testing endpoint for the Rate Package JSON REST API: $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 $json = New-Object 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 $($json.Emit()) $sb = New-Object Chilkat.StringBuilder $resp = $http.PostJson3($url,"application/json",$json) if ($http.LastMethodSuccess -ne $true) { $($http.LastErrorText) exit } $("status = " + $resp.StatusCode) # A 200 response status indicate success. if ($resp.StatusCode -ne 200) { $($resp.BodyStr) $("Failed.") exit } $json.Load($resp.BodyStr) $json.EmitCompact = $false $($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. $statusCode = $json.StringOf("RateResponse.Response.ResponseStatus.Code") $statusDescription = $json.StringOf("RateResponse.Response.ResponseStatus.Description") $customerContext = $json.StringOf("RateResponse.Response.TransactionReference.CustomerContext") $serviceCode = $json.StringOf("RateResponse.RatedShipment.Service.Code") $serviceDescription = $json.StringOf("RateResponse.RatedShipment.Service.Description") $billingWeightUnitOfMeasurementCode = $json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Code") $billingWeightUnitOfMeasurementDescription = $json.StringOf("RateResponse.RatedShipment.BillingWeight.UnitOfMeasurement.Description") $billingWeightWeight = $json.StringOf("RateResponse.RatedShipment.BillingWeight.Weight") $transportationChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.TransportationCharges.CurrencyCode") $transportationChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.TransportationCharges.MonetaryValue") $serviceOptionsChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.CurrencyCode") $serviceOptionsChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.ServiceOptionsCharges.MonetaryValue") $totalChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.TotalCharges.CurrencyCode") $totalChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.TotalCharges.MonetaryValue") $ratedPackageTransportationChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.CurrencyCode") $ratedPackageTransportationChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.RatedPackage.TransportationCharges.MonetaryValue") $ratedPackageServiceOptionsChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.CurrencyCode") $ratedPackageServiceOptionsChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.RatedPackage.ServiceOptionsCharges.MonetaryValue") $ratedPackageTotalChargesCurrencyCode = $json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.CurrencyCode") $ratedPackageTotalChargesMonetaryValue = $json.StringOf("RateResponse.RatedShipment.RatedPackage.TotalCharges.MonetaryValue") $ratedPackageWeight = $json.StringOf("RateResponse.RatedShipment.RatedPackage.Weight") $ratedPackageBillingWeightUnitOfMeasurementCode = $json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Code") $ratedPackageBillingWeightUnitOfMeasurementDescription = $json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.UnitOfMeasurement.Description") $ratedPackageBillingWeightWeight = $json.StringOf("RateResponse.RatedShipment.RatedPackage.BillingWeight.Weight") $i = 0 $count_i = $json.SizeOfArray("RateResponse.Response.Alert") while ($i -lt $count_i) { $json.I = $i $Code = $json.StringOf("RateResponse.Response.Alert[i].Code") $Description = $json.StringOf("RateResponse.Response.Alert[i].Description") $i = $i + 1 } $i = 0 $count_i = $json.SizeOfArray("RateResponse.RatedShipment.RatedShipmentAlert") while ($i -lt $count_i) { $json.I = $i $Code = $json.StringOf("RateResponse.RatedShipment.RatedShipmentAlert[i].Code") $Description = $json.StringOf("RateResponse.RatedShipment.RatedShipmentAlert[i].Description") $i = $i + 1 } |
© 2000-2023 Chilkat Software, Inc. All Rights Reserved.