Sample code for 30+ languages & platforms
PureBasic

_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 PureBasic Downloads

PureBasic
IncludeFile "CkCert.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    ; Provide information about the CSC service and our user ID and client credentials.
    jsonCsc.i = CkJsonObject::ckCreate()
    If jsonCsc.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

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

    CkJsonObject::ckUpdateString(jsonCsc,"userId","YOUR_USER_ID")
    CkJsonObject::ckUpdateString(jsonCsc,"clientId","YOUR_CLIENT_ID")
    CkJsonObject::ckUpdateString(jsonCsc,"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.
    cert.i = CkCert::ckCreate()
    If cert.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkCert::ckSetCloudSigner(cert,jsonCsc)
    If success = 0
        Debug CkCert::ckLastErrorText(cert)
        CkJsonObject::ckDispose(jsonCsc)
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    CkJsonObject::setCkEmitCompact(jsonCsc, 0)

    Debug CkJsonObject::ckEmit(jsonCsc)

    ; We can do the following to get the credential IDs
    i.i = 0
    numIds.i = CkJsonObject::ckSizeOfArray(jsonCsc,"credentials_list.credentialIDs")
    While i < numIds
        CkJsonObject::setCkI(jsonCsc, i)
        cred_id.s = CkJsonObject::ckStringOf(jsonCsc,"credentials_list.credentialIDs[i]")
        Debug "Credential ID: " + cred_id
        i = i + 1
    Wend


    CkJsonObject::ckDispose(jsonCsc)
    CkCert::ckDispose(cert)


    ProcedureReturn
EndProcedure