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
(Objective-C) Shippo Create Customs DeclarationDemonstrates how to create a customs declaration and send a POST request with the necessary information to the Customs Declarations endpoint. For more information, see https://goshippo.com/docs/international/
#import <CkoHttp.h> #import <CkoJsonObject.h> #import <CkoHttpResponse.h> #import <CkoStringBuilder.h> #import <NSString.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; BOOL success; // 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" // } // ] // } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json UpdateString: @"contents_type" value: @"MERCHANDISE"]; [json UpdateString: @"non_delivery_option" value: @"RETURN"]; [json UpdateBool: @"certify" value: YES]; [json UpdateString: @"certify_signer" value: @"Simon Kreuz"]; [json UpdateString: @"incoterm" value: @"DDU"]; [json UpdateString: @"items[0].description" value: @"T-shirt"]; [json UpdateInt: @"items[0].quantity" value: [NSNumber numberWithInt: 20]]; [json UpdateString: @"items[0].net_weight" value: @"5"]; [json UpdateString: @"items[0].mass_unit" value: @"lb"]; [json UpdateString: @"items[0].value_amount" value: @"200"]; [json UpdateString: @"items[0].value_currency" value: @"USD"]; [json UpdateString: @"items[0].tariff_number" value: @""]; [json UpdateString: @"items[0].origin_country" value: @"US"]; [http SetRequestHeader: @"Authorization" value: @"ShippoToken <API_TOKEN>"]; [http SetRequestHeader: @"Content-Type" value: @"application/json"]; CkoHttpResponse *resp = [http PostJson3: @"https://api.goshippo.com/customs/declarations/" contentType: @"application/json" json: json]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init]; [resp GetBodySb: sbResponseBody]; CkoJsonObject *jResp = [[CkoJsonObject alloc] init]; [jResp LoadSb: sbResponseBody]; jResp.EmitCompact = NO; NSLog(@"%@",@"Response Body:"); NSLog(@"%@",[jResp Emit]); int respStatusCode = [resp.StatusCode intValue]; NSLog(@"%@%d",@"Response Status Code = ",respStatusCode); if (respStatusCode >= 400) { NSLog(@"%@",@"Response Header:"); NSLog(@"%@",resp.Header); NSLog(@"%@",@"Failed."); return; } // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "object_created": "2019-07-04T16:00:29.043Z", // "object_updated": "2019-07-04T16:00:29.043Z", // "object_id": "4a1e6ab7b1ba49ed9bc6cb1a8798e0fd", // "object_owner": "admin@chilkatsoft.com", // "object_state": "VALID", // "address_importer": null, // "certify_signer": "Simon Kreuz", // "certify": true, // "items": [ // "4096c68693364b7ea0af72fb869ee861" // ], // "non_delivery_option": "RETURN", // "contents_type": "MERCHANDISE", // "contents_explanation": "", // "exporter_reference": "", // "importer_reference": "", // "invoice": "", // "commercial_invoice": false, // "license": "", // "certificate": "", // "notes": "", // "eel_pfc": "", // "aes_itn": "", // "disclaimer": "", // "incoterm": "DDU", // "metadata": "", // "test": true, // "duties_payor": 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 NSString *strVal = 0; NSString *object_created = [jResp StringOf: @"object_created"]; NSString *object_updated = [jResp StringOf: @"object_updated"]; NSString *object_id = [jResp StringOf: @"object_id"]; NSString *object_owner = [jResp StringOf: @"object_owner"]; NSString *object_state = [jResp StringOf: @"object_state"]; NSString *address_importer = [jResp StringOf: @"address_importer"]; NSString *certify_signer = [jResp StringOf: @"certify_signer"]; BOOL certify = [jResp BoolOf: @"certify"]; NSString *non_delivery_option = [jResp StringOf: @"non_delivery_option"]; NSString *contents_type = [jResp StringOf: @"contents_type"]; NSString *contents_explanation = [jResp StringOf: @"contents_explanation"]; NSString *exporter_reference = [jResp StringOf: @"exporter_reference"]; NSString *importer_reference = [jResp StringOf: @"importer_reference"]; NSString *invoice = [jResp StringOf: @"invoice"]; BOOL commercial_invoice = [jResp BoolOf: @"commercial_invoice"]; NSString *license = [jResp StringOf: @"license"]; NSString *certificate = [jResp StringOf: @"certificate"]; NSString *notes = [jResp StringOf: @"notes"]; NSString *eel_pfc = [jResp StringOf: @"eel_pfc"]; NSString *aes_itn = [jResp StringOf: @"aes_itn"]; NSString *disclaimer = [jResp StringOf: @"disclaimer"]; NSString *incoterm = [jResp StringOf: @"incoterm"]; NSString *metadata = [jResp StringOf: @"metadata"]; BOOL test = [jResp BoolOf: @"test"]; NSString *duties_payor = [jResp StringOf: @"duties_payor"]; int i = 0; int count_i = [[jResp SizeOfArray: @"items"] intValue]; while (i < count_i) { jResp.I = [NSNumber numberWithInt: i]; strVal = [jResp StringOf: @"items[i]"]; i = i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.