Docusign 使用 nodejs 从模板嵌入签名请求

Docusign embedded signing request from template with nodejs

我正在使用 nodejs docusign api 并且无法弄清楚如何从模板中嵌入签名请求。我有点希望它按照非模板使用示例的方式工作。

我遇到的主要问题是当您使用模板时 nodejs docusign 库处理 recipientIds 的方式,当您使用模板时无法直接设置 recipientIds 并且似乎没有接受 docusign 自动设置的收件人

我的大部分代码都遵循 quickstart guide

是的,我已阅读,但发现答案没有帮助。

and Docusign Embedded Signing using template

    function makeEnvelope(args){
        // create the envelope definition
        let env = new docusign.EnvelopeDefinition();
        env.templateId = args.templateId;
    
        // Create template role elements to connect the signer and cc recipients
        // to the template
        // We're setting the parameters via the object creation
        let signer1 = docusign.TemplateRole.constructFromObject({
            email: args.signerEmail,
            name: args.signerName,
            clientUserId: '1',
            roleName: 'signer'});
    
    
        // Add the TemplateRole objects to the envelope object
        env.templateRoles = [signer1];
        env.status = "sent"; // We want the envelope to be sent
    
        return env;
    }
    
    {
       let dsApiClient = new docusign.ApiClient();
        dsApiClient.setBasePath(args.basePath);
        dsApiClient.addDefaultHeader('Authorization', 'Bearer ' + args.accessToken);
        let envelopesApi = new docusign.EnvelopesApi(dsApiClient);
        
        // Step 1. Make the envelope request body (function above)
        let envelope = makeEnvelope(args.envelopeArgs)
    
        // Step 2. call Envelopes::create API method
        // Exceptions will be caught by the calling function
        let results = await envelopesApi.createEnvelope(
            args.accountId, {envelopeDefinition: envelope});
    
        return results;
    }

function makeRecipientViewRequest(args) {

    let viewRequest = new docusign.RecipientViewRequest();

    viewRequest.returnUrl = args.dsReturnUrl + "?state=123";

    viewRequest.authenticationMethod = 'none';
    
    viewRequest.email = args.signerEmail;
    viewRequest.userName = args.signerName;
    viewRequest.clientUserId = args.signerClientId;

    viewRequest.pingFrequency = 600; // seconds
    viewRequest.pingUrl = args.dsPingUrl; // optional setting

    return viewRequest
}