Unicode C
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
#include <C_CkJsonObjectW.h>
#include <C_CkCertW.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObjectW jsonCsc;
HCkCertW cert;
int i;
int numIds;
const wchar_t *cred_id;
success = FALSE;
// Provide information about the CSC service and our user ID and client credentials.
jsonCsc = CkJsonObjectW_Create();
CkJsonObjectW_UpdateString(jsonCsc,L"service",L"CSC");
CkJsonObjectW_UpdateString(jsonCsc,L"baseUrl",L"https://ras-test.jcc.com.cy/adss/service/ras/csc/v1/");
CkJsonObjectW_UpdateString(jsonCsc,L"userId",L"YOUR_USER_ID");
CkJsonObjectW_UpdateString(jsonCsc,L"clientId",L"YOUR_CLIENT_ID");
CkJsonObjectW_UpdateString(jsonCsc,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.
cert = CkCertW_Create();
success = CkCertW_SetCloudSigner(cert,jsonCsc);
if (success == FALSE) {
wprintf(L"%s\n",CkCertW_lastErrorText(cert));
CkJsonObjectW_Dispose(jsonCsc);
CkCertW_Dispose(cert);
return;
}
CkJsonObjectW_putEmitCompact(jsonCsc,FALSE);
wprintf(L"%s\n",CkJsonObjectW_emit(jsonCsc));
// We can do the following to get the credential IDs
i = 0;
numIds = CkJsonObjectW_SizeOfArray(jsonCsc,L"credentials_list.credentialIDs");
while (i < numIds) {
CkJsonObjectW_putI(jsonCsc,i);
cred_id = CkJsonObjectW_stringOf(jsonCsc,L"credentials_list.credentialIDs[i]");
wprintf(L"Credential ID: %s\n",cred_id);
i = i + 1;
}
CkJsonObjectW_Dispose(jsonCsc);
CkCertW_Dispose(cert);
}