Ruby docusign_esign: невозможно использовать шаблон - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь использовать существующий шаблон в 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."
}

Надеюсь, кто-то может помочь, там не так много информации об использовании рубина.

РЕДАКТИРОВАТЬ: После долгих экспериментов и копаний в коде драгоценного камня, кажется, документация невернаособенно в отношении camelCase против подчеркивания.Вот код, который действительно работал.Надеюсь, что это может помочь большему количеству людей!

# 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)

И вуаля!При этом фактически использовался шаблон, отправлялся его подписавшему (в качестве его роли) и предварительно заполнялись текстовые вкладки.Уф!Основная трудность здесь заключалась в том, что документация (https://www.rubydoc.info/github/docusign/docusign-ruby-client/DocuSign_eSign) - все в имени, отделенном подчеркиванием, тогда как на практике это верблюжий случай. Я посмотрел на запросы REST, которые он генерировал, и выяснил, что данные не заполняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...