从返回 "UNSPECIFIED_ERROR" 的模板创建信封

Creating an envelope from a template returning "UNSPECIFIED_ERROR"

当我尝试从模板创建信封时,我得到的响应是:

{ errorCode: 'UNSPECIFIED_ERROR',
  message: 'Non-static method requires a target.' }

这是我目前所做的:

首先我登录,returns

 { loginAccounts: 
   [ { name: '*****',
       accountId: '*****',
       baseUrl: 'https://demo.docusign.net/restapi/v2/accounts/******',
       isDefault: 'true',
       userName: '***** ********',
       userId: '*******-*****-*****-*****-*********',
       email: '********@*******.com',
       siteDescription: '' } ] }

然后我从该响应中取出 baseUrl 并尝试创建信封。我正在使用异步库的 hapi 框架和 async.waterfall,所以对于不熟悉这两个库的任何人,我对异步库的使用使用 next 回调来调用下一个函数,在这种情况下会是为 iframe 获取 url,并且我们使用 hapi 框架 AppServer.Wreck 大致等同于 request

    function prepareEnvelope(baseUrl, next) {
        var createEntitlementTemplateId = "99C44F50-2C97-4074-896B-2454969CAEF7";
        var getEnvelopeUrl  = baseUrl + "/envelopes";
        var options = {
            headers: {
                "X-DocuSign-Authentication": JSON.stringify(authHeader),
                "Content-Type": "application/json",
                "Accept": "application/json",
                "Content-Disposition": "form-data"
            },
            body : JSON.stringify({
                status: "sent",
                emailSubject: "Test email subject",
                emailBlurb: "My email blurb",
                templateId: createEntitlementTemplateId,
                templateRoles: [
                    {
                        email: "anemailaddress@gmail.com",
                        name: "Recipient Name",
                        roleName: "Signer1",
                        clientUserId: "1099", // TODO: replace with the user's id
                        tabs : {
                            textTabs : [
                                {
                                     tabLabel : "acct_nmbr",
                                     value : "123456"
                                },
                                {
                                    tabLabel : "hm_phn_nmbr",
                                    value : "8005882300"
                                },
                                {
                                    tabLabel : "nm",
                                    value : "Mr Foo Bar"
                                }
                            ]
                        }
                    }
                ]
            })
        };

        console.log("--------> options: ", options); // REMOVE THIS ====

        AppServer.Wreck.post(getEnvelopeUrl, options, function(err, res, body) {
            console.log("Request Envelope Result: \r\n", JSON.parse(body));
            next(null, body, baseUrl);
        });
    }

我得到的是:

 { errorCode: 'UNSPECIFIED_ERROR',
  message: 'Non-static method requires a target.' }

通过谷歌搜索,'Non-static method requires a target.' 似乎是一个 C# 错误,并没有真正告诉我我的配置对象的哪一部分是错误的。

我尝试了一个更简单的调用版本,去掉了所有选项卡和 clientUserId,我得到了相同的响应。

我在 Docusign 网站上创建了我的模板,我没有排除那里设置不正确的可能性。我创建了一个模板,确认 Docusign 注意到了命名的表单字段,并创建了一个 'placeholder' templateRole。

这是 templateRole 占位符:

这是我要填充的命名字段之一和相应的数据标签:

附带说明一下,我能够在没有命名字段的情况下使用基本的 vanilla 示例,也可以使用 docusign 节点包使用模板,但我没有看到任何方法来使用带有命名表单字段的选项卡图书馆并决定我宁愿对我正在做的事情有更细粒度的控制,所以我选择只点击 API。

令人惊讶的是,当我在 SO 中搜索我收到的错误代码和消息时,我只能找到一个 post 没有解决方案:/

当然,我们将不胜感激任何帮助。如果您需要任何其他信息,请随时告诉我。

当我从 Docusign 收到反馈说我的 api 调用有一个空体时,我没花几分钟就意识到问题出在我的选项对象上,其中包含一个 body 属性 而不是 payload 属性,就像在 hapi 框架中所做的那样。