需要帮助将我们的自定义应用程序与CoSign Signature(JSON)集成

时间:2015-02-26 13:38:21

标签: cosign-api

我们正在开发CoSign Signature API应用。我们正在使用7.1 documentation.

如文档中所述,要处理“CoSign签名”,我们需要使用ARX ROOT证书与CoSign设备建立SSL会话。

请帮助我们获取此证书。

另外请为我们提供相同的测试网址。如果您能为我们提供一些使用此API与 java

的示例,那就太棒了

1 个答案:

答案 0 :(得分:1)

首先请注意,可以使用较新版本的文档 - CoSign Signature API v7.2

Here您可以找到有关如何下载根CA证书的说明。

我们的DevPortal将很快更新更多代码示例。同时,这是Java中的基本示例代码,演示了如何使用CoSign Signature API对PDF进行签名:

public static byte[] SignPDF(byte[] fileBuffer) throws Exception {

    byte[] signedFileBuffer = null;
    String baseUrl = "https://prime.cosigntrial.com:8081/sapiws";

    CloseableHttpClient httpclient = HttpClients.createDefault();

    try {

        String base64Data = new String(Base64.encodeBase64(fileBuffer));

        // Build request body (JSON formatted)
        JSONObject json = new JSONObject();
        json.put("Username", "{username}");
        json.put("password", "{password}");
        json.put("FileData", base64Data);
        json.put("FileType", "pdf");
        json.put("Page", -1);
        json.put("X", 145);
        json.put("Y", 125);
        json.put("Width", 160);
        json.put("Height", 45);

        StringEntity stringEntity = new StringEntity(json.toString());

        HttpPost httpPost = new HttpPost(baseUrl + "/CreateSign" );
        // Set Content-Type request header
        httpPost.addHeader("content-type", "application/json");
        // Add request body
        httpPost.setEntity(stringEntity);
        // Send the request
        CloseableHttpResponse httpResponse = httpclient.execute(httpPost);

        HttpEntity httpEntity = httpResponse.getEntity();
        InputStream inputStream = httpEntity.getContent();
        String response = IOUtils.toString(inputStream, "UTF-8");

        // Parse JSON formatted response and fetch signed content on success
        JSONObject responseJson = new JSONObject(response);
        if (responseJson.getBoolean("Success")) {
            String signedFileBase64 = responseJson.getJSONObject("Data").getString("SignedFileData");
            signedFileBuffer = Base64.decodeBase64(signedFileBase64);
        }
    } finally {
        if(httpclient != null)
            httpclient.close();
    }

    return signedFileBuffer;
}