Create a Digital Signature Plug-in Implementation for E-Documents

This script sample script shows how to implement a digital signature plug-in.

This script can also be found at Creating a Digital Signature Plug-in Implementation for E-Documents as part of the Electronic Invoicing Adminstrator Guide.

Note:

This sample script uses the define function, which is required for an entry point script (a script you attach to a script record and deploy). You must use the require function if you want to copy the script into the SuiteScript Debugger and test it. For more information, see SuiteScript Debugger.

The following code is a sample digital signature plug-in implementation.

          /**
 * Copyright (c) 2019, Oracle NetSuite and/or its affiliates.
 *
 * @NApiVersion 2.x
 * @NModuleScope Public
 * @NScriptType plugintypeimpl
 */
define(['N/crypto/certificate','N/file'],
 
    function(certificate, file){
 
    /**
     *
     * @param pluginContext
     * @param {String} pluginContext.unsignedString
     * @param {String} plugincontext.subsidiaryId
     *
     * @returns {Object} result
     * @returns {string} result.success
     * @returns {String} result.signedString
     * @returns {String} result.message
     */
    function signDocument(pluginContext){
 
        /**
         * Extract the values from pluginContext
         */
        var unsignedString = pluginContext.unsignedString;
        var subsidiaryId = pluginContext.subsidiaryId;
 
        var rootTag = "RootTag";
        var certificateId = "custcertificatesfd";
        var algorithm = "SHA1";
 
        var result = { success : true, signedString : unsignedString, message : "This is default implementation of Digital Signature."};
 
        /**
         * Call services to sign the string
         */
        try {
 
            var random = 0;
            /*var signedXML = certificate.signXml({
                algorithm : algorithm,
                certId: certificateId,
                rootTag : rootTag,
                xmlString : unsignedString
            });
 
            result.success  = true;
            result.signedString = signedXML.asString();
            result.message = "Document signed successfully";
*/
        }catch(e){
            result.success = false;
            result.signedString = "";
            result.message = e.message;
        }
 
 
        return result;
    }
 
    return {
        signDocument : signDocument
    };
}); 

        

General Notices