SQL Server
SQL Server
_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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- Provide information about the CSC service and our user ID and client credentials.
DECLARE @jsonCsc int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonCsc OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @jsonCsc, 'UpdateString', @success OUT, 'service', 'CSC'
EXEC sp_OAMethod @jsonCsc, 'UpdateString', @success OUT, 'baseUrl', 'https://ras-test.jcc.com.cy/adss/service/ras/csc/v1/'
EXEC sp_OAMethod @jsonCsc, 'UpdateString', @success OUT, 'userId', 'YOUR_USER_ID'
EXEC sp_OAMethod @jsonCsc, 'UpdateString', @success OUT, 'clientId', 'YOUR_CLIENT_ID'
EXEC sp_OAMethod @jsonCsc, 'UpdateString', @success OUT, '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.
DECLARE @cert int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert OUT
EXEC sp_OAMethod @cert, 'SetCloudSigner', @success OUT, @jsonCsc
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @cert, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @jsonCsc
EXEC @hr = sp_OADestroy @cert
RETURN
END
EXEC sp_OASetProperty @jsonCsc, 'EmitCompact', 0
EXEC sp_OAMethod @jsonCsc, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- We can do the following to get the credential IDs
DECLARE @i int
SELECT @i = 0
DECLARE @numIds int
EXEC sp_OAMethod @jsonCsc, 'SizeOfArray', @numIds OUT, 'credentials_list.credentialIDs'
WHILE @i < @numIds
BEGIN
EXEC sp_OASetProperty @jsonCsc, 'I', @i
DECLARE @cred_id nvarchar(4000)
EXEC sp_OAMethod @jsonCsc, 'StringOf', @cred_id OUT, 'credentials_list.credentialIDs[i]'
PRINT 'Credential ID: ' + @cred_id
SELECT @i = @i + 1
END
EXEC @hr = sp_OADestroy @jsonCsc
EXEC @hr = sp_OADestroy @cert
END
GO