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
(Delphi DLL) UPS Rate RequestSee more UPS ExamplesSimple UPS Rate Example For more information, see https://developer.ups.com/api/reference?loc=en_US#operation/Rate
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, HttpResponse, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; json: HCkJsonObject; jsonToken: HCkJsonObject; success: Boolean; resp: HCkHttpResponse; sbResponseBody: HCkStringBuilder; jResp: HCkJsonObject; respStatusCode: Integer; Level: PWideChar; j: Integer; count_j: Integer; Value: PWideChar; ServiceCode: PWideChar; ServiceDescription: PWideChar; RateChart: PWideChar; BillableWeightCalculationMethod: PWideChar; RatingMethod: PWideChar; UnitOfMeasurementCode: PWideChar; UnitOfMeasurementDescription: PWideChar; Weight: PWideChar; CurrencyCode: PWideChar; MonetaryValue: PWideChar; BaseServiceChargeCurrencyCode: PWideChar; BaseServiceChargeMonetaryValue: PWideChar; GrossChargeCurrencyCode: PWideChar; GrossChargeMonetaryValue: PWideChar; DiscountAmountCurrencyCode: PWideChar; DiscountAmountMonetaryValue: PWideChar; DiscountPercentage: PWideChar; NetChargeCurrencyCode: PWideChar; NetChargeMonetaryValue: PWideChar; Density: PWideChar; TotalCubicFeet: PWideChar; ServiceOptionsChargesCurrencyCode: PWideChar; ServiceOptionsChargesMonetaryValue: PWideChar; TotalChargesCurrencyCode: PWideChar; TotalChargesMonetaryValue: PWideChar; TotalChargesWithTaxesCurrencyCode: PWideChar; TotalChargesWithTaxesMonetaryValue: PWideChar; TotalChargeCurrencyCode: PWideChar; TotalChargeMonetaryValue: PWideChar; PickupDate: PWideChar; DocumentsOnlyIndicator: PWideChar; PackageBillType: PWideChar; GuaranteedIndicator: PWideChar; Disclaimer: PWideChar; Date: PWideChar; Time: PWideChar; BusinessDaysInTransit: PWideChar; PickupTime: PWideChar; DayOfWeek: PWideChar; CustomerCenterCutoff: PWideChar; DelayCount: PWideChar; HolidayCount: PWideChar; RestDays: PWideChar; TotalTransitDays: PWideChar; SaturdayDelivery: PWideChar; SaturdayDeliveryDisclaimer: PWideChar; SundayDelivery: PWideChar; SundayDeliveryDisclaimer: PWideChar; AutoDutyCode: PWideChar; TimeInTransitDisclaimer: PWideChar; ScheduledDeliveryDate: PWideChar; RoarRatedIndicator: PWideChar; SubType: PWideChar; Quantity: PWideChar; TypeCode: PWideChar; TypeDescription: PWideChar; UnitOfMeasurement: PWideChar; Length: PWideChar; Width: PWideChar; Height: PWideChar; AdjustedHeightValue: PWideChar; AdjustedHeightUnitOfMeasurement: PWideChar; v_Type: PWideChar; TransportationChargesCurrencyCode: PWideChar; TransportationChargesMonetaryValue: PWideChar; BillingWeightWeight: PWideChar; SimpleRateCode: PWideChar; k: Integer; count_k: Integer; nullVal: Boolean; ModifierType: PWideChar; ModifierDesc: PWideChar; Amount: PWideChar; Code: PWideChar; Description: PWideChar; CustomerContext: PWideChar; i: Integer; count_i: Integer; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); // Use this online tool to generate code from sample JSON: // Generate Code to Create JSON // The following JSON is sent in the request body. // { // "RateRequest": { // "Request": { // "TransactionReference": { // "CustomerContext": "CustomerContext" // } // }, // "Shipment": { // "Shipper": { // "Name": "ShipperName", // "ShipperNumber": "ShipperNumber", // "Address": { // "AddressLine": [ // "ShipperAddressLine", // "ShipperAddressLine", // "ShipperAddressLine" // ], // "City": "TIMONIUM", // "StateProvinceCode": "MD", // "PostalCode": "21093", // "CountryCode": "US" // } // }, // "ShipTo": { // "Name": "ShipToName", // "Address": { // "AddressLine": [ // "ShipToAddressLine", // "ShipToAddressLine", // "ShipToAddressLine" // ], // "City": "Alpharetta", // "StateProvinceCode": "GA", // "PostalCode": "30005", // "CountryCode": "US" // } // }, // "ShipFrom": { // "Name": "ShipFromName", // "Address": { // "AddressLine": [ // "ShipFromAddressLine", // "ShipFromAddressLine", // "ShipFromAddressLine" // ], // "City": "TIMONIUM", // "StateProvinceCode": "MD", // "PostalCode": "21093", // "CountryCode": "US" // } // }, // "PaymentDetails": { // "ShipmentCharge": { // "Type": "01", // "BillShipper": { // "AccountNumber": "ShipperNumber" // } // } // }, // "Service": { // "Code": "03", // "Description": "Ground" // }, // "NumOfPieces": "1", // "Package": { // "PackagingType": { // "Code": "02", // "Description": "Packaging" // }, // "Dimensions": { // "UnitOfMeasurement": { // "Code": "IN", // "Description": "Inches" // }, // "Length": "5", // "Width": "5", // "Height": "5" // }, // "PackageWeight": { // "UnitOfMeasurement": { // "Code": "LBS", // "Description": "Pounds" // }, // "Weight": "1" // } // } // } // } // } json := CkJsonObject_Create(); CkJsonObject_UpdateString(json,'RateRequest.Request.TransactionReference.CustomerContext','CustomerContext'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Name','ShipperName'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.ShipperNumber','ShipperNumber'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.AddressLine[0]','ShipperAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.AddressLine[1]','ShipperAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.AddressLine[2]','ShipperAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.City','TIMONIUM'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.StateProvinceCode','MD'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.PostalCode','21093'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Shipper.Address.CountryCode','US'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Name','ShipToName'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.AddressLine[0]','ShipToAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.AddressLine[1]','ShipToAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.AddressLine[2]','ShipToAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.City','Alpharetta'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.StateProvinceCode','GA'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.PostalCode','30005'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipTo.Address.CountryCode','US'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Name','ShipFromName'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.AddressLine[0]','ShipFromAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.AddressLine[1]','ShipFromAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.AddressLine[2]','ShipFromAddressLine'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.City','TIMONIUM'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.StateProvinceCode','MD'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.PostalCode','21093'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.ShipFrom.Address.CountryCode','US'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.PaymentDetails.ShipmentCharge.Type','01'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.PaymentDetails.ShipmentCharge.BillShipper.AccountNumber','ShipperNumber'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Service.Code','03'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Service.Description','Ground'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.NumOfPieces','1'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.PackagingType.Code','02'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.PackagingType.Description','Packaging'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Code','IN'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.Dimensions.UnitOfMeasurement.Description','Inches'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.Dimensions.Length','5'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.Dimensions.Width','5'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.Dimensions.Height','5'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Code','LBS'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.PackageWeight.UnitOfMeasurement.Description','Pounds'); CkJsonObject_UpdateString(json,'RateRequest.Shipment.Package.PackageWeight.Weight','1'); // Load the OAuth2 access token obtained via client credentials as shown // in this UPS OAuth2 Client Credentials example. jsonToken := CkJsonObject_Create(); success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/ups_oauth2_token.json'); if (success <> True) then begin Memo1.Lines.Add('Failed to load ups_oauth2_token.json'); Exit; end; // The access token JSON looks something like this: // { // "token_type": "Bearer", // "issued_at": "1686911985606", // "client_id": "2498righ8wr6aihe98rt8rhowirtyw9er6twe80rtywrehrt", // "access_token": "eyJraW......R2sbqrY", // "expires_in": "14399", // "status": "approved" // } // Adds the "Authorization: Bearer <YOUR_TOKEN_HERE>" header. CkHttp_putAuthToken(http,CkJsonObject__stringOf(jsonToken,'access_token')); CkHttp_SetRequestHeader(http,'Content-Type','application/json'); CkHttp_SetRequestHeader(http,'transId','string'); CkHttp_SetRequestHeader(http,'transactionSrc','testing'); // The "version" indicates Rate API to display the new release features in Rate API response based on Rate release. // Supported values: v1, v1601, v1607, v1701, v1707, v2108, v2205. CkHttp_SetUrlVar(http,'version','v1'); // The "requestoption" has the following valid values: // Rate = The server rates (The default Request option is Rate if a Request Option is not provided). // Shop = The server validates the shipment, and returns rates for all UPS products from the ShipFrom to the ShipTo addresses. // Rate is the only valid request option for Ground Freight Pricing requests. CkHttp_SetUrlVar(http,'requestoption','Rate'); resp := CkHttp_PostJson3(http,'https://wwwcie.ups.com/api/rating/{$version}/{$requestoption}?additionalinfo=string','application/json',json); if (CkHttp_getLastMethodSuccess(http) = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; sbResponseBody := CkStringBuilder_Create(); CkHttpResponse_GetBodySb(resp,sbResponseBody); jResp := CkJsonObject_Create(); CkJsonObject_LoadSb(jResp,sbResponseBody); CkJsonObject_putEmitCompact(jResp,False); Memo1.Lines.Add('Response Body:'); Memo1.Lines.Add(CkJsonObject__emit(jResp)); // ---------------------------------------------------------------------------------------------------------- // Important: If you get the following error response, read further for the solution.. // // { // "response": { // "errors": [ // { // "code": "250002", // "message": "Invalid Authentication Information." // } // ] // } // } // // It means you didn't add the Rating API permission to your app. // To add the Rating API, login to your developer account and go to your Apps page at https://developer.ups.com/apps?loc=en_US // Then edit your app and add the Rating API. // ---------------------------------------------------------------------------------------------------------- respStatusCode := CkHttpResponse_getStatusCode(resp); Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode)); if (respStatusCode >= 400) then begin Memo1.Lines.Add('Response Header:'); Memo1.Lines.Add(CkHttpResponse__header(resp)); Memo1.Lines.Add('Failed.'); CkHttpResponse_Dispose(resp); Exit; end; CkHttpResponse_Dispose(resp); // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "RateResponse": { // "Response": { // "ResponseStatus": { // "Code": "s", // "Description": "string" // }, // "Alert": [ // { // "Code": "string", // "Description": "string" // } // ], // "AlertDetail": [ // { // "Code": "string", // "Description": "string", // "ElementLevelInformation": { // "Level": "s", // "ElementIdentifier": [ // { // "Code": null, // "Value": null // } // ] // } // } // ], // "TransactionReference": { // "CustomerContext": "string" // } // }, // "RatedShipment": [ // { // "Disclaimer": [ // { // "Code": "st", // "Description": "string" // } // ], // "Service": { // "Code": "str", // "Description": "string" // }, // "RateChart": "s", // "RatedShipmentAlert": [ // { // "Code": "string", // "Description": "string" // } // ], // "BillableWeightCalculationMethod": "st", // "RatingMethod": "st", // "BillingWeight": { // "UnitOfMeasurement": { // "Code": "str", // "Description": "string" // }, // "Weight": "strin" // }, // "TransportationCharges": { // "CurrencyCode": "str", // "MonetaryValue": "stringstringstri" // }, // "BaseServiceCharge": { // "CurrencyCode": "str", // "MonetaryValue": "stringstringstri" // }, // "ItemizedCharges": [ // { // "Code": "str", // "Description": "string", // "CurrencyCode": "str", // "MonetaryValue": "string", // "SubType": "string" // } // ], // "FRSShipmentData": { // "TransportationCharges": { // "GrossCharge": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "DiscountAmount": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "DiscountPercentage": "st", // "NetCharge": { // "CurrencyCode": "str", // "MonetaryValue": "string" // } // }, // "FreightDensityRate": { // "Density": "strin", // "TotalCubicFeet": "string" // }, // "HandlingUnits": [ // { // "Quantity": "string", // "Type": { // "Code": null, // "Description": null // }, // "Dimensions": { // "UnitOfMeasurement": null, // "Length": null, // "Width": null, // "Height": null // }, // "AdjustedHeight": { // "Value": null, // "UnitOfMeasurement": null // } // } // ] // }, // "ServiceOptionsCharges": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "TaxCharges": [ // { // "Type": "string", // "MonetaryValue": "string" // } // ], // "TotalCharges": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "TotalChargesWithTaxes": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "NegotiatedRateCharges": { // "ItemizedCharges": [ // { // "Code": "str", // "Description": "string", // "CurrencyCode": "str", // "MonetaryValue": "string", // "SubType": "string" // } // ], // "TaxCharges": [ // { // "Type": "string", // "MonetaryValue": "string" // } // ], // "TotalCharge": { // "CurrencyCode": "string", // "MonetaryValue": "string" // }, // "TotalChargesWithTaxes": { // "CurrencyCode": "string", // "MonetaryValue": "string" // } // }, // "RatedPackage": [ // { // "BaseServiceCharge": { // "CurrencyCode": "str", // "MonetaryValue": "string" // }, // "TransportationCharges": { // "CurrencyCode": "string", // "MonetaryValue": "string" // }, // "ServiceOptionsCharges": { // "CurrencyCode": "string", // "MonetaryValue": "string" // }, // "TotalCharges": { // "CurrencyCode": "string", // "MonetaryValue": "string" // }, // "Weight": "string", // "BillingWeight": { // "UnitOfMeasurement": { // "Code": null, // "Description": null // }, // "Weight": "string" // }, // "Accessorial": [ // { // "Code": null, // "Description": null // } // ], // "ItemizedCharges": [ // { // "Code": null, // "Description": null, // "CurrencyCode": null, // "MonetaryValue": null, // "SubType": null // } // ], // "NegotiatedCharges": { // "ItemizedCharges": [ // null // ] // }, // "SimpleRate": { // "Code": "st" // }, // "RateModifier": [ // { // "ModifierType": null, // "ModifierDesc": null, // "Amount": null // } // ] // } // ], // "TimeInTransit": { // "PickupDate": "stringst", // "DocumentsOnlyIndicator": "string", // "PackageBillType": "st", // "ServiceSummary": { // "Service": { // "Description": "string" // }, // "GuaranteedIndicator": "string", // "Disclaimer": "string", // "EstimatedArrival": { // "Arrival": { // "Date": null, // "Time": null // }, // "BusinessDaysInTransit": "strin", // "Pickup": { // "Date": null, // "Time": null // }, // "DayOfWeek": "string", // "CustomerCenterCutoff": "string", // "DelayCount": "str", // "HolidayCount": "st", // "RestDays": "st", // "TotalTransitDays": "strin" // }, // "SaturdayDelivery": "string", // "SaturdayDeliveryDisclaimer": "string", // "SundayDelivery": "string", // "SundayDeliveryDisclaimer": "string" // }, // "AutoDutyCode": "st", // "Disclaimer": "string" // }, // "ScheduledDeliveryDate": "string", // "RoarRatedIndicator": "string" // } // ] // } // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON Code := CkJsonObject__stringOf(jResp,'RateResponse.Response.ResponseStatus.Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.Response.ResponseStatus.Description'); CustomerContext := CkJsonObject__stringOf(jResp,'RateResponse.Response.TransactionReference.CustomerContext'); i := 0; count_i := CkJsonObject_SizeOfArray(jResp,'RateResponse.Response.Alert'); while i < count_i do begin CkJsonObject_putI(jResp,i); Code := CkJsonObject__stringOf(jResp,'RateResponse.Response.Alert[i].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.Response.Alert[i].Description'); i := i + 1; end; i := 0; count_i := CkJsonObject_SizeOfArray(jResp,'RateResponse.Response.AlertDetail'); while i < count_i do begin CkJsonObject_putI(jResp,i); Code := CkJsonObject__stringOf(jResp,'RateResponse.Response.AlertDetail[i].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.Response.AlertDetail[i].Description'); Level := CkJsonObject__stringOf(jResp,'RateResponse.Response.AlertDetail[i].ElementLevelInformation.Level'); j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Code := CkJsonObject__stringOf(jResp,'RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier[j].Code'); Value := CkJsonObject__stringOf(jResp,'RateResponse.Response.AlertDetail[i].ElementLevelInformation.ElementIdentifier[j].Value'); j := j + 1; end; i := i + 1; end; i := 0; count_i := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment'); while i < count_i do begin CkJsonObject_putI(jResp,i); ServiceCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].Service.Code'); ServiceDescription := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].Service.Description'); RateChart := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RateChart'); BillableWeightCalculationMethod := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BillableWeightCalculationMethod'); RatingMethod := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatingMethod'); UnitOfMeasurementCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BillingWeight.UnitOfMeasurement.Code'); UnitOfMeasurementDescription := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BillingWeight.UnitOfMeasurement.Description'); Weight := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BillingWeight.Weight'); CurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TransportationCharges.CurrencyCode'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TransportationCharges.MonetaryValue'); BaseServiceChargeCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BaseServiceCharge.CurrencyCode'); BaseServiceChargeMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].BaseServiceCharge.MonetaryValue'); GrossChargeCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.GrossCharge.CurrencyCode'); GrossChargeMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.GrossCharge.MonetaryValue'); DiscountAmountCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountAmount.CurrencyCode'); DiscountAmountMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountAmount.MonetaryValue'); DiscountPercentage := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.DiscountPercentage'); NetChargeCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.NetCharge.CurrencyCode'); NetChargeMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.TransportationCharges.NetCharge.MonetaryValue'); Density := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.FreightDensityRate.Density'); TotalCubicFeet := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.FreightDensityRate.TotalCubicFeet'); ServiceOptionsChargesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ServiceOptionsCharges.CurrencyCode'); ServiceOptionsChargesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ServiceOptionsCharges.MonetaryValue'); TotalChargesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TotalCharges.CurrencyCode'); TotalChargesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TotalCharges.MonetaryValue'); TotalChargesWithTaxesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TotalChargesWithTaxes.CurrencyCode'); TotalChargesWithTaxesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TotalChargesWithTaxes.MonetaryValue'); TotalChargeCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalCharge.CurrencyCode'); TotalChargeMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalCharge.MonetaryValue'); TotalChargesWithTaxesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalChargesWithTaxes.CurrencyCode'); TotalChargesWithTaxesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TotalChargesWithTaxes.MonetaryValue'); PickupDate := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.PickupDate'); DocumentsOnlyIndicator := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.DocumentsOnlyIndicator'); PackageBillType := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.PackageBillType'); ServiceDescription := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.Service.Description'); GuaranteedIndicator := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.GuaranteedIndicator'); Disclaimer := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.Disclaimer'); Date := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Arrival.Date'); Time := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Arrival.Time'); BusinessDaysInTransit := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.BusinessDaysInTransit'); PickupDate := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Pickup.Date'); PickupTime := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.Pickup.Time'); DayOfWeek := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.DayOfWeek'); CustomerCenterCutoff := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.CustomerCenterCutoff'); DelayCount := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.DelayCount'); HolidayCount := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.HolidayCount'); RestDays := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.RestDays'); TotalTransitDays := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.EstimatedArrival.TotalTransitDays'); SaturdayDelivery := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SaturdayDelivery'); SaturdayDeliveryDisclaimer := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SaturdayDeliveryDisclaimer'); SundayDelivery := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SundayDelivery'); SundayDeliveryDisclaimer := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.ServiceSummary.SundayDeliveryDisclaimer'); AutoDutyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.AutoDutyCode'); TimeInTransitDisclaimer := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TimeInTransit.Disclaimer'); ScheduledDeliveryDate := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ScheduledDeliveryDate'); RoarRatedIndicator := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RoarRatedIndicator'); j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].Disclaimer'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].Disclaimer[j].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].Disclaimer[j].Description'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedShipmentAlert'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedShipmentAlert[j].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedShipmentAlert[j].Description'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].ItemizedCharges'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ItemizedCharges[j].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ItemizedCharges[j].Description'); CurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ItemizedCharges[j].CurrencyCode'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ItemizedCharges[j].MonetaryValue'); SubType := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].ItemizedCharges[j].SubType'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Quantity := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Quantity'); TypeCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Type.Code'); TypeDescription := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Type.Description'); UnitOfMeasurement := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.UnitOfMeasurement'); Length := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Length'); Width := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Width'); Height := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].Dimensions.Height'); AdjustedHeightValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].AdjustedHeight.Value'); AdjustedHeightUnitOfMeasurement := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].FRSShipmentData.HandlingUnits[j].AdjustedHeight.UnitOfMeasurement'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].TaxCharges'); while j < count_j do begin CkJsonObject_putJ(jResp,j); v_Type := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TaxCharges[j].Type'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].TaxCharges[j].MonetaryValue'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges'); while j < count_j do begin CkJsonObject_putJ(jResp,j); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].Description'); CurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].CurrencyCode'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].MonetaryValue'); SubType := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.ItemizedCharges[j].SubType'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges'); while j < count_j do begin CkJsonObject_putJ(jResp,j); v_Type := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges[j].Type'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].NegotiatedRateCharges.TaxCharges[j].MonetaryValue'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedPackage'); while j < count_j do begin CkJsonObject_putJ(jResp,j); BaseServiceChargeCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].BaseServiceCharge.CurrencyCode'); BaseServiceChargeMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].BaseServiceCharge.MonetaryValue'); TransportationChargesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].TransportationCharges.CurrencyCode'); TransportationChargesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].TransportationCharges.MonetaryValue'); ServiceOptionsChargesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ServiceOptionsCharges.CurrencyCode'); ServiceOptionsChargesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ServiceOptionsCharges.MonetaryValue'); TotalChargesCurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].TotalCharges.CurrencyCode'); TotalChargesMonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].TotalCharges.MonetaryValue'); Weight := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].Weight'); UnitOfMeasurementCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.UnitOfMeasurement.Code'); UnitOfMeasurementDescription := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.UnitOfMeasurement.Description'); BillingWeightWeight := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].BillingWeight.Weight'); SimpleRateCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].SimpleRate.Code'); k := 0; count_k := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].Accessorial'); while k < count_k do begin CkJsonObject_putK(jResp,k); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].Accessorial[k].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].Accessorial[k].Description'); k := k + 1; end; k := 0; count_k := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges'); while k < count_k do begin CkJsonObject_putK(jResp,k); Code := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].Code'); Description := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].Description'); CurrencyCode := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].CurrencyCode'); MonetaryValue := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].MonetaryValue'); SubType := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].ItemizedCharges[k].SubType'); k := k + 1; end; k := 0; count_k := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].NegotiatedCharges.ItemizedCharges'); while k < count_k do begin CkJsonObject_putK(jResp,k); nullVal := CkJsonObject_IsNullOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].NegotiatedCharges.ItemizedCharges[k]'); k := k + 1; end; k := 0; count_k := CkJsonObject_SizeOfArray(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].RateModifier'); while k < count_k do begin CkJsonObject_putK(jResp,k); ModifierType := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].ModifierType'); ModifierDesc := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].ModifierDesc'); Amount := CkJsonObject__stringOf(jResp,'RateResponse.RatedShipment[i].RatedPackage[j].RateModifier[k].Amount'); k := k + 1; end; j := j + 1; end; i := i + 1; end; CkHttp_Dispose(http); CkJsonObject_Dispose(json); CkJsonObject_Dispose(jsonToken); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.