Sample code for 30+ languages & platforms
C

CardConnect Create Profile

See more CardConnect Examples

Demonstrates how to create a profile.
A PUT call to the profile endpoint creates a new profile or adds a new account to an existing profile. ...

See https://developer.cardconnect.com/cardconnect-api?lang=json#create-update-profile-request

Chilkat C Downloads

C
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    HCkJsonObject json;
    const char *url;
    HCkHttpResponse resp;
    HCkJsonObject jsonResp;
    const char *country;
    const char *address;
    const char *resptext;
    const char *city;
    const char *acctid;
    const char *respcode;
    const char *defaultacct;
    const char *accttype;
    const char *token;
    const char *license;
    const char *respproc;
    const char *phone;
    const char *profileid;
    const char *name;
    const char *auoptout;
    const char *postal;
    const char *expiry;
    const char *region;
    const char *ssnl4;
    const char *respstat;

    success = FALSE;

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

    http = CkHttp_Create();

    CkHttp_putBasicAuth(http,TRUE);
    CkHttp_putLogin(http,"API_USERNAME");
    CkHttp_putPassword(http,"API_PASSWORD");

    // Build and send the following JSON:

    // {
    //   "region": "AK",
    //   "phone": "7778789999",
    //   "accttype": "VISA",
    //   "postal": "19090",
    //   "ssnl4": "3655",
    //   "expiry": "0214",
    //   "city": "ANYTOWN",
    //   "country": "US",
    //   "address": "123 MAIN STREET",
    //   "merchid": "496400000840",
    //   "name": "TOM JONES",
    //   "account": "4444333322221111",
    //   "license": "123451254",
    // }

    json = CkJsonObject_Create();
    CkJsonObject_UpdateString(json,"region","AK");
    CkJsonObject_UpdateString(json,"phone","7778789999");
    CkJsonObject_UpdateString(json,"accttype","VISA");
    CkJsonObject_UpdateString(json,"postal","19090");
    CkJsonObject_UpdateString(json,"ssnl4","3655");
    CkJsonObject_UpdateString(json,"expiry","0214");
    CkJsonObject_UpdateString(json,"city","ANYTOWN");
    CkJsonObject_UpdateString(json,"country","US");
    CkJsonObject_UpdateString(json,"address","123 MAIN STREET");
    CkJsonObject_UpdateString(json,"merchid","MERCHANT_ID");
    CkJsonObject_UpdateString(json,"name","TOM JONES");
    CkJsonObject_UpdateString(json,"account","4444333322221111");
    CkJsonObject_UpdateString(json,"license","123451254");

    url = "https://<site>.cardconnect.com:<port>/cardconnect/rest/profile";

    resp = CkHttpResponse_Create();
    success = CkHttp_HttpStr(http,"PUT",url,CkJsonObject_emit(json),"utf-8","application/json",resp);
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        CkJsonObject_Dispose(json);
        CkHttpResponse_Dispose(resp);
        return;
    }

    // A response status of 200 indicates potential success.  The JSON response body
    // must be examined to determine if it was truly successful or an error.
    printf("response status code = %d\n",CkHttpResponse_getStatusCode(resp));

    jsonResp = CkJsonObject_Create();
    CkJsonObject_Load(jsonResp,CkHttpResponse_bodyStr(resp));
    CkJsonObject_putEmitCompact(jsonResp,FALSE);

    printf("response JSON:\n");
    printf("%s\n",CkJsonObject_emit(jsonResp));

    // A successful response looks like this:

    // {
    //   "country": "US",
    //   "address": "123 MAIN STREET",
    //   "resptext": "Profile Saved",
    //   "city": "ANYTOWN",
    //   "acctid": "1",
    //   "respcode": "09",
    //   "defaultacct": "Y",
    //   "accttype": "VISA",
    //   "token": "9441149619831111",
    //   "license": "123451254",
    //   "respproc": "PPS",
    //   "phone": "7778789999",
    //   "profileid": "16392957457306633141",
    //   "name": "TOM JONES",
    //   "auoptout": "N",
    //   "postal": "19090",
    //   "expiry": "0214",
    //   "region": "AK",
    //   "ssnl4": "3655",
    //   "respstat": "A"
    // }

    // Use this online tool to generate parsing code from sample JSON: 
    // Generate Parsing Code from JSON

    country = CkJsonObject_stringOf(jsonResp,"country");
    address = CkJsonObject_stringOf(jsonResp,"address");
    resptext = CkJsonObject_stringOf(jsonResp,"resptext");
    city = CkJsonObject_stringOf(jsonResp,"city");
    acctid = CkJsonObject_stringOf(jsonResp,"acctid");
    respcode = CkJsonObject_stringOf(jsonResp,"respcode");
    defaultacct = CkJsonObject_stringOf(jsonResp,"defaultacct");
    accttype = CkJsonObject_stringOf(jsonResp,"accttype");
    token = CkJsonObject_stringOf(jsonResp,"token");
    license = CkJsonObject_stringOf(jsonResp,"license");
    respproc = CkJsonObject_stringOf(jsonResp,"respproc");
    phone = CkJsonObject_stringOf(jsonResp,"phone");
    profileid = CkJsonObject_stringOf(jsonResp,"profileid");
    name = CkJsonObject_stringOf(jsonResp,"name");
    auoptout = CkJsonObject_stringOf(jsonResp,"auoptout");
    postal = CkJsonObject_stringOf(jsonResp,"postal");
    expiry = CkJsonObject_stringOf(jsonResp,"expiry");
    region = CkJsonObject_stringOf(jsonResp,"region");
    ssnl4 = CkJsonObject_stringOf(jsonResp,"ssnl4");
    respstat = CkJsonObject_stringOf(jsonResp,"respstat");


    CkHttp_Dispose(http);
    CkJsonObject_Dispose(json);
    CkHttpResponse_Dispose(resp);
    CkJsonObject_Dispose(jsonResp);

    }