Sample code for 30+ languages & platforms
Unicode C++

_LANGUAGE_ JCC Payment Systems - Get a User's Credential IDs for CSC

See more JCC Cyprus Examples

Demonstrates how to find the credential ids for a given user to be used with remote signing via the CSC (Cloud Signature Consortium) API.

Note: This example requires Chilkat v10.0.2 or greater.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkJsonObjectW.h>
#include <CkCertW.h>

void ChilkatSample(void)
    {
    bool success = false;

    // Provide information about the CSC service and our user ID and client credentials.
    CkJsonObjectW jsonCsc;

    jsonCsc.UpdateString(L"service",L"CSC");
    jsonCsc.UpdateString(L"baseUrl",L"https://ras-test.jcc.com.cy/adss/service/ras/csc/v1/");

    jsonCsc.UpdateString(L"userId",L"YOUR_USER_ID");
    jsonCsc.UpdateString(L"clientId",L"YOUR_CLIENT_ID");
    jsonCsc.UpdateString(L"clientSecret",L"YOUR_CLIENT_SECRET");

    // The call to SetCloudSigner will do the following internally:
    // 1) Calls the "info" endpoint to get information about the remote service and the list of the API methods it supports.
    // 2) Calls the "oauth2/token" endpoint to get the OAuth2 authorization token via client credentials (using the clientId and clientSecret).
    // 3) Calls the "credentials/list" endpoint to get the list of credentials associated with the userId.
    // 4) Calls the "credentials/info" endpoint to retrieve the credential and return the main identity information 
    //    and the public key certificate or the certificate chain associated to it.
    //    The Chilkat certificate object is loaded with the retrieved certificate.

    // The jsonCsc is updated with the information returned from each of the above calls.
    CkCertW cert;
    success = cert.SetCloudSigner(jsonCsc);
    if (success == false) {
        wprintf(L"%s\n",cert.lastErrorText());
        return;
    }

    jsonCsc.put_EmitCompact(false);

    wprintf(L"%s\n",jsonCsc.emit());

    // We can do the following to get the credential IDs
    int i = 0;
    int numIds = jsonCsc.SizeOfArray(L"credentials_list.credentialIDs");
    while (i < numIds) {
        jsonCsc.put_I(i);
        const wchar_t *cred_id = jsonCsc.stringOf(L"credentials_list.credentialIDs[i]");
        wprintf(L"Credential ID: %s\n",cred_id);
        i = i + 1;
    }
    }