Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcel

C++ Examples


ASN.1
Amazon S3
Amazon S3 (new)
Amazon SES
Amazon SNS
Amazon SQS
Async
Azure Cloud Storage
Azure Service Bus
Bounced Email
Box
CSR
CSV
Certificates
Compression
DKIM / DomainKey
DSA
Diffie-Hellman
Digital Signatures
Dropbox
Dynamics CRM
ECC
Email Object
Encryption
FTP
Facebook
Firebase
GeoOp
Google APIs
Google Calendar
Google Cloud Storage
Google Drive
Gzip
HTML-to-XML/Text
HTTP
HTTP Misc
IMAP
JSON
JSON Web Encryption (JWE)
JSON Web Signatures (JWS)
JSON Web Token (JWT)

Java KeyStore (JKS)
Jira
MHT / HTML Email
MIME
Microsoft Graph
NTLM
OAuth1
OAuth2
OneDrive
OpenSSL
Outlook
PEM
PFX/P12
POP3
PRNG
PayPal
Peoplevox
QuickBooks
REST
RSA Encryption
SCP
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
SharePoint
Shopify
Socket/SSL/TLS
Spider
Stream
Stripe
SugarCRM
Tar Archive
Twitter
VoiceBase
Walmart
WebSocket
XML
XML Digital Signatures
XMP
Xero
Zip
curl
eBay

 

 

 

(C++) QuickBooks - Create an Employee

Demonstrates how to send an JSON request to create a QuickBooks employee

Chilkat C/C++ Library Downloads

MS Visual C/C++

Linux/CentOS/Heroku C/C++

MAC OS X C/C++

C++ Builder

Solaris C/C++

iOS C/C++

Android C/C++

Raspberry Pi C/C++

Windows Mobile 5.0/Pocket PC 2003

ARM Embedded Linux C/C++

PowerLinux C/C++

FreeBSD C/C++

MinGW C/C++

#include <CkJsonObject.h>
#include <CkOAuth1.h>
#include <CkRest.h>
#include <CkStringBuilder.h>

void ChilkatSample(void)
    {
    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  This example also assumes an OAuth1 access token was previously fetched.
    //  and saved in a JSON file.  See the Chilkat online examples at example-code.com
    //  for Quickbooks OAuth1 examples (in the Quickbooks and OAuth1 categories)
    // 

    //  First get our previously obtained access token.
    CkJsonObject jsonToken;
    bool success = jsonToken.LoadFile("qa_data/tokens/quickbooks.json");

    CkOAuth1 oauth1;
    oauth1.put_ConsumerKey("QUICKBOOKS_CONSUMER_KEY");
    oauth1.put_ConsumerSecret("QUICKBOOKS_CONSUMER_SECRET");
    oauth1.put_Token(jsonToken.stringOf("oauth_token"));
    oauth1.put_TokenSecret(jsonToken.stringOf("oauth_token_secret"));

    CkRest rest;

    //  Connect using TLS.
    //  A single REST object, once connected, can be used for many Quickbooks REST API calls.
    //  The auto-reconnect indicates that if the already-established HTTPS connection is closed,
    //  then it will be automatically re-established as needed.
    bool bAutoReconnect = true;
    success = rest.Connect("sandbox-quickbooks.api.intuit.com",443,true,bAutoReconnect);
    if (success != true) {
        std::cout << rest.lastErrorText() << "\r\n";
        return;
    }

    rest.SetAuthOAuth1(oauth1,false);

    //  Create the following JSON:
    //  {
//   "SSN": "444-55-6666",
    //    "PrimaryAddr": {
//     "Id": "50",
    //      "Line1": "45 N. Elm Street",
    //      "City": "Middlefield",
    //      "CountrySubDivisionCode": "CA",
    //      "PostalCode": "93242"
    //    },
    //    "GivenName": "John",
    //    "FamilyName": "Meuller",
    //    "PrimaryPhone": {
//     "FreeFormNumber": "408-525-1234"
    //    }
    //  }
    // 
    CkJsonObject jsonRequest;
    jsonRequest.AppendString("SSN","444-55-6666");
    CkJsonObject *addr = jsonRequest.AppendObject("PrimaryAddr");
    addr->AppendString("Id","50");
    addr->AppendString("Line1","45 N. Elm Street");
    addr->AppendString("City","Middlefield");
    addr->AppendString("CountrySubDivisionCode","CA");
    addr->AppendString("PostalCode","93242");
    delete addr;
    jsonRequest.AppendString("GivenName","John");
    jsonRequest.AppendString("FamilyName","Meuller");
    CkJsonObject *phone = jsonRequest.AppendObject("PrimaryPhone");
    phone->AppendString("FreeFormNumber","408-525-1234");
    delete phone;

    const char *requestBody = jsonRequest.emit();

    //  The company ID is the realmId
    CkStringBuilder sbPath;
    sbPath.Append("/v3/company/<companyID>/employee");
    int numReplacements = sbPath.Replace("<companyID>",jsonToken.stringOf("realmId"));

    rest.AddHeader("Content-Type","application/json");
    rest.AddHeader("Accept","application/json");
    rest.put_AllowHeaderFolding(false);

    //  If we want a URL such as this: https://sandbox-quickbooks.api.intuit.com/v3/company/193514465596199/employee?minorversion=4
    //  then the query params must be added here:
    rest.AddQueryParam("minorversion","4");

    const char *responseBody = rest.fullRequestString("POST",sbPath.getAsString(),requestBody);
    if (rest.get_LastMethodSuccess() != true) {
        std::cout << rest.lastErrorText() << "\r\n";
        return;
    }

    //  We should expect a 200 response if successful.
    if (rest.get_ResponseStatusCode() != 200) {
        std::cout << "Request Header: " << "\r\n";
        std::cout << rest.lastRequestHeader() << "\r\n";
        std::cout << "----" << "\r\n";
        std::cout << "Response StatusCode = " << rest.get_ResponseStatusCode() << "\r\n";
        std::cout << "Response StatusLine: " << rest.responseStatusText() << "\r\n";
        std::cout << "Response Header:" << "\r\n";
        std::cout << rest.responseHeader() << "\r\n";
        std::cout << responseBody << "\r\n";
        return;
    }

    CkJsonObject jsonResponse;
    jsonResponse.Load(responseBody);
    jsonResponse.put_EmitCompact(false);
    std::cout << jsonResponse.emit() << "\r\n";
    std::cout << "Success." << "\r\n";

    //  A sample JSON response:
    //  {
//   "Employee": {
//     "SSN": "XXX-XX-XXXX",
    //      "PrimaryAddr": {
//       "Id": "97",
    //        "Line1": "45 N. Elm Street",
    //        "City": "Middlefield",
    //        "CountrySubDivisionCode": "CA",
    //        "PostalCode": "93242"
    //      },
    //      "BillableTime": false,
    //      "domain": "QBO",
    //      "sparse": false,
    //      "Id": "59",
    //      "SyncToken": "0",
    //      "MetaData": {
//       "CreateTime": "2016-10-25T14:05:05-07:00",
    //        "LastUpdatedTime": "2016-10-25T14:05:05-07:00"
    //      },
    //      "GivenName": "John",
    //      "FamilyName": "Meuller",
    //      "DisplayName": "John Meuller",
    //      "PrintOnCheckName": "John Meuller",
    //      "Active": true,
    //      "PrimaryPhone": {
//       "FreeFormNumber": "408-525-1234"
    //      }
    //    },
    //    "time": "2016-10-25T14:05:05.661-07:00"
    //  }
    // 
    }

 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.