Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Quickbooks Create a New CustomerDemonstrates how to create a new customer via the Quickbooks REST API. For more information, see https://www.developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#create-a-customer
#include <CkJsonObject.h> #include <CkRest.h> #include <CkStringBuilder.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // First get our previously obtained OAuth2 access token. CkJsonObject jsonToken; bool success = jsonToken.LoadFile("qa_data/tokens/qb-access-token.json"); CkRest rest; // Connect to the REST server. bool bTls = true; int port = 443; bool bAutoReconnect = true; bool success = rest.Connect("sandbox-quickbooks.api.intuit.com",port,bTls,bAutoReconnect); CkStringBuilder sbAuth; sbAuth.Append("Bearer "); sbAuth.Append(jsonToken.stringOf("access_token")); rest.put_Authorization(sbAuth.getAsString()); // -------------------------------------------------------------------------- // Note: The above code to setup the initial REST connection // can be done once. After connecting, any number of REST calls can be made. // If the connection is lost, the next REST method call will automatically // reconnect if needed. // -------------------------------------------------------------------------- // Create the following JSON: // { // "FullyQualifiedName": "King Groceries", // "PrimaryEmailAddr": { // "Address": "jdrew@myemail.com" // }, // "DisplayName": "King's Groceries", // "Suffix": "Jr", // "Title": "Mr", // "MiddleName": "B", // "Notes": "Here are other details.", // "FamilyName": "King", // "PrimaryPhone": { // "FreeFormNumber": "(555) 555-5555" // }, // "CompanyName": "King Groceries", // "BillAddr": { // "CountrySubDivisionCode": "CA", // "City": "Mountain View", // "PostalCode": "94042", // "Line1": "123 Main Street", // "Country": "USA" // }, // "GivenName": "James" // } // // Use the this online tool to generate the code from sample JSON: // Generate Code to Create JSON CkJsonObject jsonReq; jsonReq.UpdateString("FullyQualifiedName","King Groceries"); jsonReq.UpdateString("PrimaryEmailAddr.Address","jdrew@myemail.com"); jsonReq.UpdateString("DisplayName","King's Groceries"); jsonReq.UpdateString("Suffix","Jr"); jsonReq.UpdateString("Title","Mr"); jsonReq.UpdateString("MiddleName","B"); jsonReq.UpdateString("Notes","Here are other details."); jsonReq.UpdateString("FamilyName","King"); jsonReq.UpdateString("PrimaryPhone.FreeFormNumber","(555) 555-5555"); jsonReq.UpdateString("CompanyName","King Groceries"); jsonReq.UpdateString("BillAddr.CountrySubDivisionCode","CA"); jsonReq.UpdateString("BillAddr.City","Mountain View"); jsonReq.UpdateString("BillAddr.PostalCode","94042"); jsonReq.UpdateString("BillAddr.Line1","123 Main Street"); jsonReq.UpdateString("BillAddr.Country","USA"); jsonReq.UpdateString("GivenName","James"); CkStringBuilder sbRequestBody; jsonReq.EmitSb(sbRequestBody); rest.AddHeader("Content-Type","application/json"); rest.AddHeader("Accept","application/json"); rest.put_AllowHeaderFolding(false); CkStringBuilder sbResponseBody; success = rest.FullRequestSb("POST","/v3/company/<realmID>/customer",sbRequestBody,sbResponseBody); if (success != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } int respStatusCode = rest.get_ResponseStatusCode(); // Success is indicated by a 200 response status code. strOut.append("response status code = "); strOut.appendInt(respStatusCode); strOut.append("\r\n"); CkJsonObject jsonResponse; jsonResponse.LoadSb(sbResponseBody); jsonResponse.put_EmitCompact(false); strOut.append(jsonResponse.emit()); strOut.append("\r\n"); if (rest.get_ResponseStatusCode() != 200) { strOut.append("Failed."); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Sample output... // (See the parsing code below..) // // Use the this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // { // "Customer": { // "domain": "QBO", // "PrimaryEmailAddr": { // "Address": "jdrew@myemail.com" // }, // "DisplayName": "King's Groceries", // "CurrencyRef": { // "name": "United States Dollar", // "value": "USD" // }, // "DefaultTaxCodeRef": { // "value": "2" // }, // "PreferredDeliveryMethod": "Print", // "GivenName": "James", // "FullyQualifiedName": "King's Groceries", // "BillWithParent": false, // "Title": "Mr", // "Job": false, // "BalanceWithJobs": 0, // "PrimaryPhone": { // "FreeFormNumber": "(555) 555-5555" // }, // "Taxable": true, // "MetaData": { // "CreateTime": "2015-07-23T10:58:12-07:00", // "LastUpdatedTime": "2015-07-23T10:58:12-07:00" // }, // "BillAddr": { // "City": "Mountain View", // "Country": "USA", // "Line1": "123 Main Street", // "PostalCode": "94042", // "CountrySubDivisionCode": "CA", // "Id": "112" // }, // "MiddleName": "B", // "Notes": "Here are other details.", // "Active": true, // "Balance": 0, // "SyncToken": "0", // "Suffix": "Jr", // "CompanyName": "King Groceries", // "FamilyName": "King", // "PrintOnCheckName": "King Groceries", // "sparse": false, // "Id": "67" // }, // "time": "2015-07-23T10:58:12.099-07:00" // } // // Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat. // See this example explaining how this memory should be used: const char * functions. const char *CustomerDomain = jsonResponse.stringOf("Customer.domain"); const char *CustomerPrimaryEmailAddrAddress = jsonResponse.stringOf("Customer.PrimaryEmailAddr.Address"); const char *CustomerDisplayName = jsonResponse.stringOf("Customer.DisplayName"); const char *CustomerCurrencyRefName = jsonResponse.stringOf("Customer.CurrencyRef.name"); const char *CustomerCurrencyRefValue = jsonResponse.stringOf("Customer.CurrencyRef.value"); const char *CustomerDefaultTaxCodeRefValue = jsonResponse.stringOf("Customer.DefaultTaxCodeRef.value"); const char *CustomerPreferredDeliveryMethod = jsonResponse.stringOf("Customer.PreferredDeliveryMethod"); const char *CustomerGivenName = jsonResponse.stringOf("Customer.GivenName"); const char *CustomerFullyQualifiedName = jsonResponse.stringOf("Customer.FullyQualifiedName"); bool CustomerBillWithParent = jsonResponse.BoolOf("Customer.BillWithParent"); const char *CustomerTitle = jsonResponse.stringOf("Customer.Title"); bool CustomerJob = jsonResponse.BoolOf("Customer.Job"); int CustomerBalanceWithJobs = jsonResponse.IntOf("Customer.BalanceWithJobs"); const char *CustomerPrimaryPhoneFreeFormNumber = jsonResponse.stringOf("Customer.PrimaryPhone.FreeFormNumber"); bool CustomerTaxable = jsonResponse.BoolOf("Customer.Taxable"); const char *CustomerMetaDataCreateTime = jsonResponse.stringOf("Customer.MetaData.CreateTime"); const char *CustomerMetaDataLastUpdatedTime = jsonResponse.stringOf("Customer.MetaData.LastUpdatedTime"); const char *CustomerBillAddrCity = jsonResponse.stringOf("Customer.BillAddr.City"); const char *CustomerBillAddrCountry = jsonResponse.stringOf("Customer.BillAddr.Country"); const char *CustomerBillAddrLine1 = jsonResponse.stringOf("Customer.BillAddr.Line1"); const char *CustomerBillAddrPostalCode = jsonResponse.stringOf("Customer.BillAddr.PostalCode"); const char *CustomerBillAddrCountrySubDivisionCode = jsonResponse.stringOf("Customer.BillAddr.CountrySubDivisionCode"); const char *CustomerBillAddrId = jsonResponse.stringOf("Customer.BillAddr.Id"); const char *CustomerMiddleName = jsonResponse.stringOf("Customer.MiddleName"); const char *CustomerNotes = jsonResponse.stringOf("Customer.Notes"); bool CustomerActive = jsonResponse.BoolOf("Customer.Active"); int CustomerBalance = jsonResponse.IntOf("Customer.Balance"); const char *CustomerSyncToken = jsonResponse.stringOf("Customer.SyncToken"); const char *CustomerSuffix = jsonResponse.stringOf("Customer.Suffix"); const char *CustomerCompanyName = jsonResponse.stringOf("Customer.CompanyName"); const char *CustomerFamilyName = jsonResponse.stringOf("Customer.FamilyName"); const char *CustomerPrintOnCheckName = jsonResponse.stringOf("Customer.PrintOnCheckName"); bool CustomerSparse = jsonResponse.BoolOf("Customer.sparse"); const char *CustomerId = jsonResponse.stringOf("Customer.Id"); const char *time = jsonResponse.stringOf("time"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.