我正在尝试使用Docusign中的现有模板来发送信封以进行签名。但是,即使我使用模板角色来设置收件人,也会收到RECIPIENTS_NOT_PROVIDED
错误消息。
如果我尝试添加签名者,则会得到ENVELOPE_IS_INCOMPLETE
,我认为是因为它没有使用模板。
我知道凭据很好,并且能够创建一个新信封并在此处添加“签到”标签。但我只是不知道如何使用模板。我尝试在此处模拟node.js
的示例:https://developers.docusign.com/esign-rest-api/code-examples/request-a-signature-via-email-using-a-template使代码相似,但没有用。
# Create the envelope request
envelope = DocuSign_eSign::EnvelopeDefinition.new({
emailSubject: "my subject", # BTW the documentation seems incorrect on this, it's camel-cased not underscore separated
template_id: ENV['DS_TEMPLATE_ID'] || "98..........f"
})
role = DocuSign_eSign::TemplateRole.new({
role_name: 'MyRole', # same string as defined in the template via web gui
name: DSConfig.signer_name,
email: DSConfig.signer_email
})
envelope.template_roles = [role];
envelope.status = "sent"
envelope_api = DocuSign_eSign::EnvelopesApi.new(@@api_client)
result = envelope_api.create_envelope(@@account_id, envelope)
应该创建一个新信封,但是给我:
message: {
"errorCode": "RECIPIENTS_NOT_PROVIDED",
"message": "No recipients were found in the request."
}
希望有人可以提供帮助,关于那里的红宝石用途的信息并不多。
编辑:经过大量实验并深入研究了gem代码,看来文档是不正确的,尤其是与camelCase vs下划线有关的文档。这是实际起作用的代码。希望可以帮助更多的人!
# Create the envelope request
envelope = DocuSign_eSign::EnvelopeDefinition.new({
emailSubject: "my subject",
emailBlurb: "Some Text for email body",
templateId: ENV['DS_TEMPLATE_ID'] || "98..........f"
})
role = DocuSign_eSign::TemplateRole.new({
roleName: 'MyRole', # same string as defined in the template via web gui
name: DSConfig.signer_name,
email: DSConfig.signer_email
})
text = [
DocuSign_eSign::Text.new({
tabLabel: 'texttabname', # these should match the template
name: 'texttabname',
value: "222.222.222-22"
})]
tabs = DocuSign_eSign::Tabs.new
tabs.text_tabs = text
role.tabs = tabs
envelope.template_roles = [role];
envelope.status = "sent"
envelope_api = DocuSign_eSign::EnvelopesApi.new(@@api_client)
result = envelope_api.create_envelope(@@account_id, envelope)
瞧瞧!这实际上使用了模板,将其发送给签名者(作为其角色),并预先填写了文本标签。 ew!这里的主要困难是文档(https://www.rubydoc.info/github/docusign/docusign-ruby-client/DocuSign_eSign)都是用下划线分隔的名称,而实际上是驼峰式。我查看了它正在生成的REST请求,发现没有填写数据。
答案 0 :(得分:0)
使用模板时,请务必记住模板中有两种类型的收件人: 1.固定 2.占位符。
第一种类型不需要其他工作。 第二种类型要求您在发送文档之前指定收件人的详细信息,电子邮件地址和姓名(即使不是第一个发送给收件人)。 为了使DocuSign与收件人匹配,我们使用不是GUID而是您称为占位符收件人的文本名称的roleName。它应与您在模板中定义收件人的方式完全匹配(而收件人ID,GUID对于模板和生成的信封将有所不同)。
这样做可以解决此问题。