Как получить готовый конверт с веб-крючками - PullRequest
0 голосов
/ 01 марта 2019

Я хочу использовать веб-перехватчик DocuSign, чтобы хранить готовые конверты в нашей внутренней системе хранения документов.Я читал, что предпочтительным подходом к получению документов является использование envelopeId, возвращенного во входящем сообщении веб-ловушки, и использование API для запроса конверта и его содержимого, чтобы обеспечить легкость входящего сообщения и не иметь дело слюбые большие проблемы с файлами.

При таком подходе мне нужно аутентифицировать свою учетную запись службы, чтобы запросить конверт.Поскольку я хочу сделать это как бэкэнд-процесс, я не уверен, как проходить аутентификацию, поскольку кажется, что при всех подходах к аутентификации необходимо взаимодействие с пользователем, чтобы приложение могло получить доступ к DocuSign.

Чего мне не хватает?Каков наилучший вариант для достижения этой цели?Должен ли я просто включить содержимое конверта во входящее сообщение, чтобы мне не нужно было делать еще один вызов для его получения?

Ответы [ 5 ]

0 голосов
/ 07 марта 2019

Хорошо, так что я наконец-то все заработал.Все, что упоминают Payf1, Amit и Larry, является правильным и имеет хорошие ссылки на фрагменты этой головоломки.Вот шаги, которые я предпринял, чтобы настроить JWT для использования API DocuSign без получения согласия пользователя (так называемое «Согласие администратора на внутренние приложения». На этом есть целый документ ).

  1. На портале администратора добавьте свое приложение (Интеграции> Api / Keys> Добавить приложение / Key).После сохранения нажмите «Изменить» и создайте пару ключей RSA.Скопируйте текст из закрытого ключа и добавьте его в текстовый файл в вашем приложении.
  2. Включите «Администрирование организации» в своей учетной записи, связавшись с менеджером учетной записи DocuSign (это может обойтись).
  3. Войдите в свою учетную запись, перейдите в раздел «Администрирование организации> Приложения».Авторизуйте ваше приложение с разрешениями «сигнатура олицетворения».
  4. Все еще находясь в разделе «Администрирование организации», щелкните «Домен»> «Заявить домен».Введите свой домен и следуйте инструкциям по добавлению в DNS, используя этот документ
  5. После того, как домен полностью настроен и проверен, в разделе «Администрирование организации» перейдите к «Пользователи».Найдите учетную запись пользователя или службы, которую вы хотите выдать.Нажмите на их имя, чтобы открыть их профиль.Нажмите Приложения> Авторизовать приложения> Выберите приложение.Введите разрешения «подпись подражания».
  6. В своем приложении используйте этот код для получения токена авторизации.User_id - это руководство для пользователя, которому вы предоставили доступ на шаге 5 (находится на странице его профиля).

    byte [] privateKeyBytes = System.Text.Encoding.UTF8.GetBytes (File.ReadAllText (privateKeyFullPath));

    List<string> scope = new List<string>();
    scope.Add(OAuth.Scope_SIGNATURE);
    scope.Add(OAuth.Scope_IMPERSONATION);
    
    OAuthToken _AccessToken = _ApiClient.RequestJWTUserToken(client_id, user_id, OAuth.Demo_OAuth_BasePath, privateKeyBytes, 4, scope);
    

Для моего приложения я просто хочу вернуть конверт при получении идентификатора конверта из веб-перехватчика DocuSign:

_ApiClient.Configuration.AddDefaultHeader("Authorization", "Bearer " + _AccessToken.access_token);
EnvelopesApi envelopesApi = new EnvelopesApi(_ApiClient.Configuration);
EnvelopeDocumentsResult docList = envelopesApi.ListDocuments(accountId, envelopeId);
0 голосов
/ 05 марта 2019

Извините за путаницу.Я специально спрашиваю об аутентификации JWT.То, что я хотел бы сделать, это только получить идентификатор конверта от входящего вызова веб-ловушкиЗатем используйте API DocuSign для запроса подписанных документов.

При использовании этого подхода с JWT я понимаю, что мне нужно получить «код доступа».Я думаю, что нашел одну недостающую часть головоломки, в которой мне нужно было включить администрирование организации в моей учетной записи.Я сделал это и авторизовал мое приложение с «областью содержимого администратора» на «расширенный».Я хочу обработать подписанный документ с помощью внутреннего процесса.Насколько я понимаю, чтобы получить код доступа, я должен сделать этот запрос через браузер.Но нет браузера для взаимодействия с пользователем.Так вот где я застреваю.Как получить код доступа и / или токен доступа для внутреннего процесса, чтобы выполнить этот вызов API?

0 голосов
/ 03 марта 2019

Ваш вопрос отличный.Я согласен с ответом @ Payf1.Вот некоторая дополнительная информация.

Подписка на ваш веб-крюк

Вам необходимо иметь подписку на систему веб-крючков DocuSign, чтобы ваш слушатель получал веб-крючокуведомления.

Вариант 1. Настройка системы Connect на уровне учетной записи.Это даст вам подписку на каждый конверт, отправленный любым пользователем в учетной записи, на конверты, отправленные через Powerforms, через веб-инструмент DocuSign и через API.Просто игнорируйте входящие уведомления для конвертов, которые вам не интересны. Не отклоняйте их, подтверждайте, а затем игнорируйте их.

Вариант 2. Для каждого конверта, для которого вы хотите подписку на веб-крючок, вы должны оба создатьконверт с использованием API и включите объект eventNotification в вызов Envelopes :: create .

Входящие уведомления одинаковы для любой опции.

Прослушиваниеи работа с уведомлениями о веб-крюках

Чтобы правильно обрабатывать входящий поток уведомлений о веб-крюках, лучшая архитектура состоит в том, чтобы помещать каждое уведомление в надежную очередь, а затем подтверждать получение сообщения в DocuSign.

Надежноочереди предлагаются служебная шина Azure , служба простой очереди AWS , облачные задачи Google и многие локальные библиотеки программных очередей.

Затем отдельные рабочие процессы могут обрабатывать сообщения асинхронно.

Как вы правильно сказали,рекомендация pro-tip - не включать документы в органы уведомления.

Таким образом, рабочим процессам необходим токен доступа DocuSign, чтобы API-вызовы обращались к DocuSign для получения документов конвертов.Как предположил @ Payf1, JWT Grant часто является правильным решением для аутентификации.Проверка подлинности с использованием кода авторизации может также использоваться, если ваше приложение использует токен обновления для создания токена доступа по мере необходимости.

Примеры

Для получения гранта JWT см. Примеры кодов eg-01 .

0 голосов
/ 05 марта 2019

Вы смешиваете две вещи, одна из которых Webhook, для которой не требуется JWT AccessToken, поскольку это всего лишь вызов службы POST для вашего слушателя из DocuSign, как только события триггера подписки происходят в жизненном цикле конверта.Вам нужен сгенерированный JWT AccessToken для вызова любой службы DS API. Получение согласия объяснит, как получить согласие на создание AccessToken с использованием JWT.Если все ваши пользователи в учетной записи DS работают с одним и тем же корпоративным адресом электронной почты, и вы можете запросить этот домен корпоративного адреса электронной почты в DS, обновив маркер TXT в DNS этого корпоративного адреса электронной почты, вы можете использовать Согласие администратора.Также для использования согласия администратора вам необходимо уточнить у диспетчера учетных записей DS, позволяют ли ваши планы подписки использовать функцию организации в DS или нет.Но если у вас неправильный план подписки или вы не можете запросить домен электронной почты в DocuSign, вам необходимо явно получить согласие пользователя перед созданием токена доступа для этого пользователя.

0 голосов
/ 02 марта 2019

Добро пожаловать в сообщество Скотт.

Вы можете использовать отдельный вызов API для извлечения документа или можете включить PDF-документы и / или Сертификат об окончании в свой веб-крючок.Журналы Webhook всегда будут включать в себя все данные конверта, включая значения полей.См. здесь для получения дополнительной информации.

Чтобы ответить на ваш вопрос, связанный с аутентификацией, вам необходимо использовать сервисную интеграцию, которая напрямую интегрируется с учетной записью DocuSign и не аутентифицирует каждого конечного пользователя.Другими словами, интеграция без пользователя, которая аутентифицирует вашу систему хранилища документов и DocuSign.JSON Web Token Bearer Grant - это метод аутентификации, который вы можете использовать.Пожалуйста, смотрите здесь для получения дополнительной информации.

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