![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Classic ASP) Shippo Create the Shipment, Get Rates, and Purchase LabelDemonstrates how retrieve rates and create labels for international shipments. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://goshippo.com/docs/international/
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% success = 0 ' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. set http = Server.CreateObject("Chilkat.Http") ' Implements the following CURL command: ' curl https://api.goshippo.com/customs/declarations/ \ ' -H "Authorization: ShippoToken <API_TOKEN>" \ ' -H "Content-Type: application/json" \ ' -d '{ ' "contents_type": "MERCHANDISE", ' "non_delivery_option": "RETURN", ' "certify": true, ' "certify_signer": "Simon Kreuz", ' "incoterm": "DDU", ' "items": [{ ' "description": "T-shirt", ' "quantity": 20, ' "net_weight": "5", ' "mass_unit": "lb", ' "value_amount": "200", ' "value_currency": "USD", ' "tariff_number": "", ' "origin_country": "US" ' }] ' }' ' Use this online tool to generate code from sample JSON: ' Generate Code to Create JSON ' The following JSON is sent in the request body. ' { ' "contents_type": "MERCHANDISE", ' "non_delivery_option": "RETURN", ' "certify": true, ' "certify_signer": "Simon Kreuz", ' "incoterm": "DDU", ' "items": [ ' { ' "description": "T-shirt", ' "quantity": 20, ' "net_weight": "5", ' "mass_unit": "lb", ' "value_amount": "200", ' "value_currency": "USD", ' "tariff_number": "", ' "origin_country": "US" ' } ' ] ' } set json = Server.CreateObject("Chilkat.JsonObject") success = json.UpdateString("contents_type","MERCHANDISE") success = json.UpdateString("non_delivery_option","RETURN") success = json.UpdateBool("certify",1) success = json.UpdateString("certify_signer","Simon Kreuz") success = json.UpdateString("incoterm","DDU") success = json.UpdateString("items[0].description","T-shirt") success = json.UpdateInt("items[0].quantity",20) success = json.UpdateString("items[0].net_weight","5") success = json.UpdateString("items[0].mass_unit","lb") success = json.UpdateString("items[0].value_amount","200") success = json.UpdateString("items[0].value_currency","USD") success = json.UpdateString("items[0].tariff_number","") success = json.UpdateString("items[0].origin_country","US") http.SetRequestHeader "Authorization","ShippoToken <API_TOKEN>" http.SetRequestHeader "Content-Type","application/json" set resp = Server.CreateObject("Chilkat.HttpResponse") success = http.HttpJson("POST","https://api.goshippo.com/customs/declarations/",json,"application/json",resp) If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>" Response.End End If set sbResponseBody = Server.CreateObject("Chilkat.StringBuilder") success = resp.GetBodySb(sbResponseBody) set jResp = Server.CreateObject("Chilkat.JsonObject") success = jResp.LoadSb(sbResponseBody) jResp.EmitCompact = 0 Response.Write "<pre>" & Server.HTMLEncode( "Response Body:") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( jResp.Emit()) & "</pre>" respStatusCode = resp.StatusCode Response.Write "<pre>" & Server.HTMLEncode( "Response Status Code = " & respStatusCode) & "</pre>" If (respStatusCode >= 400) Then Response.Write "<pre>" & Server.HTMLEncode( "Response Header:") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( resp.Header) & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "Failed.") & "</pre>" Response.End End If ' Sample JSON response: ' (Sample code for parsing the JSON response is shown below) ' { ' "object_created": "2014-07-17T00:04:06.163Z", ' "object_updated": "2014-07-17T00:04:06.163Z", ' "object_id": "89436997a794439ab47999701e60392e", ' "object_owner": "shippotle@goshippo.com", ' "status": "SUCCESS", ' "address_from": { ' "object_id": "0943ae4e373e4120a99c337e496dcce8", ' "validation_results": {}, ' "is_complete": true, ' "company": "", ' "street_no": "", ' "name": "Mr. Hippo", ' "street1": "215 Clayton St.", ' "street2": "", ' "city": "San Francisco", ' "state": "CA", ' "zip": "94117", ' "country": "US", ' "phone": "+15553419393", ' "email": "support@goshippo.com", ' "is_residential": null ' }, ' "address_to": { ' "object_id": "4c7185d353764d0985a6a7825aed8ffb", ' "validation_results": {}, ' "is_complete": true, ' "name": "Mrs. Hippo", ' "street1": "200 University Ave W", ' "city": "Waterloo", ' "state": "ON", ' "zip": "N2L 3G1", ' "country": "CA", ' "phone": "+1 555 341 9393", ' "email": "support@goshippo.com", ' "is_residential": false ' }, ' "address_return": null, ' "parcels": [ ' { ' "object_id": "ec952343dd4843c39b42aca620471fd5", ' "object_created": "2013-12-01T06:24:21.121Z", ' "object_updated": "2013-12-01T06:24:21.121Z", ' "object_owner": "shippotle@goshippo.com", ' "template": null, ' "length": "5", ' "width": "5", ' "height": "5", ' "distance_unit": "in", ' "weight": "2", ' "mass_unit": "lb", ' "value_amount": null, ' "value_currency": null, ' "metadata": "", ' "line_items": [ ' ], ' "test": true ' } ' ], ' "shipment_date": "2013-12-03T12:00:00Z", ' "extra": { ' "insurance": { ' "currency": "", ' "amount": "" ' }, ' "reference_1": "", ' "reference_2": "" ' }, ' "customs_declaration": "b741b99f95e841639b54272834bc478c", ' "rates": [ ' { ' "object_created": "2014-07-17T00:04:06.263Z", ' "object_id": "545ab0a1a6ea4c9f9adb2512a57d6d8b", ' "object_owner": "shippotle@goshippo.com", ' "shipment": "89436997a794439ab47999701e60392e", ' "attributes": [ ' ], ' "amount": "5.50", ' "currency": "USD", ' "amount_local": "5.50", ' "currency_local": "USD", ' "provider": "USPS", ' "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", ' "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", ' "servicelevel": { ' "name": "Priority Mail", ' "token": "usps_priority", ' "terms": "" ' }, ' "days": 2, ' "arrives_by": null, ' "duration_terms": "Delivery in 1 to 3 business days.", ' "messages": [ ' ], ' "carrier_account": "078870331023437cb917f5187429b093", ' "test": false, ' "zone": 1 ' }, ' ... ' ], ' "carrier_accounts": [ ' ], ' "messages": [ ' ], ' "metadata": "Customer ID 123456" ' } ' Sample code for parsing the JSON response... ' Use the following online tool to generate parsing code from sample JSON: ' Generate Parsing Code from JSON object_created = jResp.StringOf("object_created") object_updated = jResp.StringOf("object_updated") object_id = jResp.StringOf("object_id") object_owner = jResp.StringOf("object_owner") status = jResp.StringOf("status") address_fromObject_id = jResp.StringOf("address_from.object_id") address_fromIs_complete = jResp.BoolOf("address_from.is_complete") address_fromCompany = jResp.StringOf("address_from.company") address_fromStreet_no = jResp.StringOf("address_from.street_no") address_fromName = jResp.StringOf("address_from.name") address_fromStreet1 = jResp.StringOf("address_from.street1") address_fromStreet2 = jResp.StringOf("address_from.street2") address_fromCity = jResp.StringOf("address_from.city") address_fromState = jResp.StringOf("address_from.state") address_fromZip = jResp.StringOf("address_from.zip") address_fromCountry = jResp.StringOf("address_from.country") address_fromPhone = jResp.StringOf("address_from.phone") address_fromEmail = jResp.StringOf("address_from.email") address_fromIs_residential = jResp.StringOf("address_from.is_residential") address_toObject_id = jResp.StringOf("address_to.object_id") address_toIs_complete = jResp.BoolOf("address_to.is_complete") address_toName = jResp.StringOf("address_to.name") address_toStreet1 = jResp.StringOf("address_to.street1") address_toCity = jResp.StringOf("address_to.city") address_toState = jResp.StringOf("address_to.state") address_toZip = jResp.StringOf("address_to.zip") address_toCountry = jResp.StringOf("address_to.country") address_toPhone = jResp.StringOf("address_to.phone") address_toEmail = jResp.StringOf("address_to.email") address_toIs_residential = jResp.BoolOf("address_to.is_residential") address_return = jResp.StringOf("address_return") shipment_date = jResp.StringOf("shipment_date") extraInsuranceCurrency = jResp.StringOf("extra.insurance.currency") extraInsuranceAmount = jResp.StringOf("extra.insurance.amount") extraReference_1 = jResp.StringOf("extra.reference_1") extraReference_2 = jResp.StringOf("extra.reference_2") customs_declaration = jResp.StringOf("customs_declaration") metadata = jResp.StringOf("metadata") i = 0 count_i = jResp.SizeOfArray("parcels") Do While i < count_i jResp.I = i object_id = jResp.StringOf("parcels[i].object_id") object_created = jResp.StringOf("parcels[i].object_created") object_updated = jResp.StringOf("parcels[i].object_updated") object_owner = jResp.StringOf("parcels[i].object_owner") template = jResp.StringOf("parcels[i].template") length = jResp.StringOf("parcels[i].length") width = jResp.StringOf("parcels[i].width") height = jResp.StringOf("parcels[i].height") distance_unit = jResp.StringOf("parcels[i].distance_unit") weight = jResp.StringOf("parcels[i].weight") mass_unit = jResp.StringOf("parcels[i].mass_unit") value_amount = jResp.StringOf("parcels[i].value_amount") value_currency = jResp.StringOf("parcels[i].value_currency") metadata = jResp.StringOf("parcels[i].metadata") test = jResp.BoolOf("parcels[i].test") j = 0 count_j = jResp.SizeOfArray("parcels[i].line_items") Do While j < count_j jResp.J = j j = j + 1 Loop i = i + 1 Loop i = 0 count_i = jResp.SizeOfArray("rates") Do While i < count_i jResp.I = i intVal = jResp.IntOf("rates[i]") j = 0 count_j = jResp.SizeOfArray("rates[i].attributes") Do While j < count_j jResp.J = j j = j + 1 Loop j = 0 count_j = jResp.SizeOfArray("rates[i].messages") Do While j < count_j jResp.J = j j = j + 1 Loop i = i + 1 Loop i = 0 count_i = jResp.SizeOfArray("carrier_accounts") Do While i < count_i jResp.I = i i = i + 1 Loop i = 0 count_i = jResp.SizeOfArray("messages") Do While i < count_i jResp.I = i i = i + 1 Loop %> </body> </html> |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.