DocuSign - просмотр данных формы - PullRequest
0 голосов
/ 04 августа 2020

Другая компания, с которой мы сотрудничаем, присылает нам информацию о новых клиентах в конвертах DocuSign, заполненных этими клиентами. Я пытаюсь извлечь данные формы из документа через PDF-файл или через API-интерфейс DocuSign. В PDF только кажется, что в него встроен ID конверта. Когда я добавляю свою учетную запись в качестве получателя CC и пытаюсь просмотреть данные формы в консоли DocuSign, я получаю сообщение об ошибке:

Cannot access form data. You do not have the necessary permission to access this data.

Additionally, I'm unable to view the form data via the DocuSign API.

{
  errorCode: "USER_LACKS_PERMISSIONS",
  message: "This user lacks sufficient permissions to access this resource."
}

Я пробовал получить доступ через API по адресу:

  • / v2 / accounts / {accountId} / envelopes / {envelopeId} / recipients / {recipientId} / tabs
  • / v2 / accounts / {accountId} / envelopes / {envelopeId} / documents / {documentId} / fields

Вопросы:

  1. Есть ли способ для пользователя, который не в клиент отправителя, чтобы иметь возможность просматривать данные формы конверта?
  2. Есть ли у DocuSign способ встроить данные табуляции в PDF для извлечения?
  3. Есть ли другой подход, которого я не знаю учитывая?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2020

@ Inbar-Gazit был достаточно любезен, чтобы покопаться внутри DocuSign, и после недолгих разговоров обнаружил, что это возможно с помощью SOAP API с методами RequestEnvelope и RequestEnvelopeV2. Я не уверен, есть ли преимущество в использовании одного метода перед другим. У обоих также есть методы asyn c.

https://developers.docusign.com/docs/esign-soap-api/reference/Status-and-Managing-Group/RequestEnvelope

Некоторые быстрые и грязные C# подтвердили, что это действительно будет работать. Я подтвердил это как учетную запись отправителя (которая также работает через REST), так и учетную запись получателя CC (которая не работала через REST).

var authString = $"<DocuSignCredentials><Username>{_userName}</Username><Password>{_password}</Password><IntegratorKey>{_apiKey}</IntegratorKey></DocuSignCredentials>";

var client = new DSAPIServiceSoapClient();

using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
    HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
    httpRequestProperty.Headers.Add("X-DocuSign-Authentication", authString);
    OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;

    EnvelopeStatus status = client.RequestStatusEx(_envelopeId);
    Console.Out.WriteLine("Subject: " + status.Subject);

    // RequestEnvelope Method
    var envelope = client.RequestEnvelope(_envelopeId, false);
    var testTab = envelope.Tabs.FirstOrDefault(t => t.TabLabel.Contains("Test"));
    if (testTab != null)
    {
        Console.WriteLine($"Tab {testTab.TabLabel}: {testTab.Value}");
    } else
    {
        Console.WriteLine("Tab not found.");
    }

    // RequestEnvelopeV2 Method
    var requestOptions = new RequestEnvelopeV2Options() {
        IncludeAC = false,
        IncludeAnchorTabLocations = true,
        IncludeDocumentBytes = false
    };
    var envelopeV2 = client.RequestEnvelopeV2(_envelopeId, requestOptions);
    var testTabV2 = envelopeV2.Tabs.FirstOrDefault(t => t.TabLabel.Contains("Test"));
    if (testTabV2 != null)
    {
        Console.WriteLine($"Tab(v2) {testTabV2.TabLabel}: {testTabV2.Value}");
    } else
    {
        Console.WriteLine("Tab(v2) not found.");
    }

    Console.WriteLine("\r\nDone.");
    Console.ReadKey();
}

Вывод:

Subject: Please DocuSign: Test Envelope
Tab txtDataLabelTest1: Some Data Here
Tab(v2) txtDataLabelTest1: Some Data Here

Done.
0 голосов
/ 04 августа 2020

Если пользователь cc в конверте использует ту же комбинацию userId и электронной почты, что и в его учетной записи, то этот пользователь также может использовать API для получения информации об учетной записи. (учетная запись - это то, что вы называете «арендатором».)

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

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