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