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
(PureBasic) Shippo List All OrdersDemonstrates how to list all orders created by sending a GET request to the orders endpoint. For more information, see https://goshippo.com/docs/orders/
IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Implements the following CURL command: ; curl https://api.goshippo.com/orders/ \ ; -H "Authorization: ShippoToken <API_Token>" CkHttp::ckSetRequestHeader(http,"Authorization","ShippoToken <API_Token>") sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckQuickGetSb(http,"https://api.goshippo.com/orders/",sbResponseBody) If success = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) ProcedureReturn EndIf jResp.i = CkJsonObject::ckCreate() If jResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(jResp,sbResponseBody) CkJsonObject::setCkEmitCompact(jResp, 0) Debug "Response Body:" Debug CkJsonObject::ckEmit(jResp) respStatusCode.i = CkHttp::ckLastStatus(http) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode >= 400 Debug "Response Header:" Debug CkHttp::ckLastHeader(http) Debug "Failed." CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; { ; "count": 1382, ; "next": "https://api.goshippo.com/orders/?page=2", ; "previous": null, ; "results": [ ; { ; "object_id": "4f2bc588e4e5446cb3f9fdb7cd5e190b", ; "object_owner": "shippotle@goshippo.com", ; "order_number": "#1068", ; "order_status": "PAID", ; "placed_at": "2016-09-23T01:28:12Z", ; "to_address": { ; "object_created": "2016-09-23T01:38:56Z", ; "object_updated": "2016-09-23T01:38:56Z", ; "object_id": "d799c2679e644279b59fe661ac8fa488", ; "object_owner": "shippotle@goshippo.com", ; "is_complete": true, ; "validation_results": {}, ; "name": "Mr Hippo", ; "company": "Shippo", ; "street1": "215 Clayton St.", ; "street2": "", ; "city": "San Francisco", ; "state": "CA", ; "zip": "94117", ; "country": "US", ; "phone": "15553419393", ; "email": "shippotle@goshippo.com", ; "is_residential": null, ; "metadata": "" ; }, ; "from_address": null, ; "line_items": [ ; { ; "object_id": "abf7d5675d744b6ea9fdb6f796b28f28", ; "title": "Hippo Magazines", ; "variant_title": "", ; "sku": "HM-123", ; "quantity": 1, ; "total_price": "12.10", ; "currency": "USD", ; "weight": "0.40", ; "weight_unit": "lb", ; "manufacture_country": null, ; "max_ship_time": null, ; "max_delivery_time": null, ; "description": null ; } ; ], ; "shipping_cost": "12.83", ; "shipping_cost_currency": "USD", ; "shipping_method": "USPS First Class Package", ; "shop_app": "Shippo", ; "subtotal_price": "12.10", ; "total_price": "24.93", ; "total_tax": "0.00", ; "currency": "USD", ; "transactions": [ ; ], ; "weight": "0.40", ; "weight_unit": "lb", ; "notes": null ; }, ; ... ; ] ; } ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON intVal.i j.i count_j.i object_id.s title.s variant_title.s sku.s quantity.i total_price.s currency.s weight.s weight_unit.s manufacture_country.s max_ship_time.s max_delivery_time.s description.s count.i = CkJsonObject::ckIntOf(jResp,"count") next.s = CkJsonObject::ckStringOf(jResp,"next") previous.s = CkJsonObject::ckStringOf(jResp,"previous") i.i = 0 count_i.i = CkJsonObject::ckSizeOfArray(jResp,"results") While i < count_i CkJsonObject::setCkI(jResp, i) intVal = CkJsonObject::ckIntOf(jResp,"results[i]") j = 0 count_j = CkJsonObject::ckSizeOfArray(jResp,"results[i].line_items") While j < count_j CkJsonObject::setCkJ(jResp, j) object_id = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].object_id") title = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].title") variant_title = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].variant_title") sku = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].sku") quantity = CkJsonObject::ckIntOf(jResp,"results[i].line_items[j].quantity") total_price = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].total_price") currency = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].currency") weight = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].weight") weight_unit = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].weight_unit") manufacture_country = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].manufacture_country") max_ship_time = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].max_ship_time") max_delivery_time = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].max_delivery_time") description = CkJsonObject::ckStringOf(jResp,"results[i].line_items[j].description") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(jResp,"results[i].transactions") While j < count_j CkJsonObject::setCkJ(jResp, j) j = j + 1 Wend i = i + 1 Wend CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.