Docusign продолжает выдавать ошибку PARTNER_AUTHENTICATION_FAILED при попытке создать конверт с использованием шаблона - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь заставить работать интеграцию docusign, используя их SDK.Я выполнил шаг «Настройка и аутентификация клиента», как описано в их документации. @ https://developers.docusign.com/esign-rest-api/code-examples/config-and-auth.

Я установил демо-счет с помощью:

    // Point to DocuSign Demo (sandbox) environment for requests
    public const string RestApiUrl = "https://demo.docusign.net/restapi";        
    public const string client_id = "{CLIENT_ID}"; //integrator key
    public const string client_secret = "{CLIENT_SECRET}";
    public const string redirect_uri = "{REDIRECT_URI}";
    public void OAuthAuthorizationCodeFlowTest()
    {

        // Make an API call with the token
        ApiClient apiClient = new ApiClient(RestApiUrl);
        DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;

        // Initiate the browser session to the Authentication server
        // so the user can login.
        Uri accountServerAuthUrl = apiClient.GetAuthorizationUri(client_id, new List<string>(), redirect_uri, "code", stateOptional);
        System.Diagnostics.Process.Start(accountServerAuthUrl.OriginalString);
    }

Я получил код доступа ииспользованный ниже код для получения токена доступа;

         // request an access token
         string accessToken = apiClient.GetOAuthToken(client_id, client_secret, true, AccessCode);
         Console.WriteLine("Access_token: " + accessToken);

Я получил токен доступа, возвращенный как токен на предъявителя.

Я использовал приведенный ниже код для получения userInfo;

     // call the GetUserInfo endpoint
       OAuth.UserInfo userInfo = apiClient.GetUserInfo({ACCESS_TOKEN});

       string accountId = string.Empty;

     // find default account (if multiple present)
     foreach (var item in userInfo.GetAccounts())
     {
         if (item.GetIsDefault() == "true")
         {
             accountId = item.AccountId();
             apiClient = new ApiClient(item.GetBaseUri() + "/restapi");
             break;
          }
     }

     return accountId;

Теперь, используя учетную запись, я пытался создать конверт для отправки электронного письма с использованием шаблона.Я использовал приведенный ниже код в качестве общего ресурса в их документации @ https://developers.docusign.com/esign-rest-api/code-examples/request-a-signature-via-email-using-a-template

         EnvelopeDefinition envDef = new EnvelopeDefinition();
         envDef.EmailSubject = "[DocuSign C# SDK] - Please sign this doc";

         // assign recipient to template role by setting name, email, and role name.  Note that the
         // template role name must match the placeholder role name saved in your account template.  
         TemplateRole tRole = new TemplateRole();
         tRole.Email = "{USER_EMAIL}";
         tRole.Name = "{USER_NAME}";
         tRole.RoleName = "{ROLE}";

         List<TemplateRole> rolesList = new List<TemplateRole>() { tRole };

         // add the role to the envelope and assign valid templateId from your account
         envDef.TemplateRoles = rolesList;
         envDef.TemplateId = "{TEMPLATE_ID}";

         // set envelope status to "sent" to immediately send the signature request
         envDef.Status = "sent";

         // |EnvelopesApi| contains methods related to creating and sending 
         Envelopes (aka signature requests)
         EnvelopesApi envelopesApi = new EnvelopesApi();
         EnvelopeSummary envelopeSummary = 
         envelopesApi.CreateEnvelope(accountId, envDef);

Я получаю сообщение об ошибке PARTNER_AUTHENTICATION_FAILED, у меня есть набор ключей интегратора - я успешно получил токен доступа.

Я также пытался передать объект конфигурации в конверт;

         Configuration cfi = new Configuration(apiClient, accessToken: accessToken);
         EnvelopesApi envelopesApi = new EnvelopesApi(apiClient.Configuration);            
         EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);

У кого-нибудь был такой же успех при использовании Docusign?

...