PureBasic
PureBasic
Shippo List All Orders
See more Shippo Examples
Demonstrates how to list all orders created by sending a GET request to the orders endpoint.Chilkat PureBasic Downloads
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; 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
; 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