Sample code for 30+ languages & platforms
Xbase++

_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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oJsonCsc
LOCAL oCert
LOCAL i
LOCAL nNumIds
LOCAL cCred_id

nSuccess := 0

//  Provide information about the CSC service and our user ID and client credentials.
oJsonCsc := CreateObject("Chilkat.JsonObject")

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

oJsonCsc:UpdateString("userId", "YOUR_USER_ID")
oJsonCsc:UpdateString("clientId", "YOUR_CLIENT_ID")
oJsonCsc:UpdateString("clientSecret", "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.
oCert := CreateObject("Chilkat.Cert")
nSuccess := oCert:SetCloudSigner(oJsonCsc)
IF (nSuccess == 0)
    ? oCert:LastErrorText
    oJsonCsc:destroy()
    oCert:destroy()
    RETURN
ENDIF

oJsonCsc:EmitCompact := 0

? oJsonCsc:Emit()

//  We can do the following to get the credential IDs
i := 0
nNumIds := oJsonCsc:SizeOfArray("credentials_list.credentialIDs")
DO WHILE i < nNumIds
    oJsonCsc:I := i
    cCred_id := oJsonCsc:StringOf("credentials_list.credentialIDs[i]")
    ? "Credential ID: " + cCred_id
    i := i + 1
ENDDO

oJsonCsc:destroy()
oCert:destroy()