Sample code for 30+ languages & platforms
Zig

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

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // Provide information about the CSC service and our user ID and client credentials.
    const json_csc = try chilkat.JsonObject.init();
    defer json_csc.deinit();

    json_csc.updateString("service", "CSC") catch {};
    json_csc.updateString("baseUrl", "https://ras-test.jcc.com.cy/adss/service/ras/csc/v1/") catch {};

    json_csc.updateString("userId", "YOUR_USER_ID") catch {};
    json_csc.updateString("clientId", "YOUR_CLIENT_ID") catch {};
    json_csc.updateString("clientSecret", "YOUR_CLIENT_SECRET") catch {};

    // 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.
    const cert = try chilkat.Cert.init();
    defer cert.deinit();
    cert.setCloudSigner(json_csc) catch {
        std.debug.print("{s}\n", .{try cert.getLastErrorText(alloc)});
        return;
    };

    json_csc.setEmitCompact(false);

    std.debug.print("{s}\n", .{try json_csc.emit(alloc)});

    // We can do the following to get the credential IDs
    var i: i32 = 0;
    const num_ids = json_csc.sizeOfArray("credentials_list.credentialIDs");
    while (i < num_ids) {
        json_csc.setI(i);
        const cred_id = try json_csc.stringOf(alloc, "credentials_list.credentialIDs[i]");
        std.debug.print("Credential ID: {s}\n", .{cred_id});
        i = i + 1;
    }
}