Возможность входа в систему с использованием API-интеграции, но возврат метода createEnvelop - Ошибка подключения к API - PullRequest
0 голосов
/ 25 апреля 2019

Я использую интеграцию API Docusign в среде Laravel и хочу отправить документ для подписи по электронной почте, используя подпись документа, я могу войти в систему и получить данные пользователя с помощью интеграции API, но при создании конверта выдает ошибку.Я использую версию php 7.2, и у меня также установлена ​​curl

$username = "XXXXXX";
$password = "XXXXXX";
$integrator_key = "XXXXXX";     

// change to production (www.docusign.net) before going live
$host = "https://demo.docusign.net/restapi";

// create configuration object and configure custom auth header
$config = new Configuration();
$config->setHost($host);
$config->addDefaultHeader("X-DocuSign-Authentication", "{\"Username\":\"" . $username . "\",\"Password\":\"" . $password . "\",\"IntegratorKey\":\"" . $integrator_key . "\"}");

// instantiate a new docusign api client
$apiClient = new ApiClient($config);
$accountId = null;

try 
{
    //*** STEP 1 - Login API: get first Account ID and baseURL
    $authenticationApi = new AuthenticationApi($apiClient);
    $options = new LoginOptions();
    $loginInformation = $authenticationApi->login($options);
    if($loginInformation)
    {
        $loginAccount = $loginInformation->getLoginAccounts()[0];
        $host = $loginAccount->getBaseUrl();
        $host = explode("/v2",$host);
        $host = $host[0];

        // UPDATE configuration object
        $config->setHost($host);

        // instantiate a NEW docusign api client (that has the correct baseUrl/host)
        $apiClient = new ApiClient($config);

        if(isset($loginInformation))
        {
            $accountId = $loginAccount->getAccountId();
            if(!empty($accountId))
            {
                //*** STEP 2 - Signature Request from a Template
                // create envelope call is available in the EnvelopesApi
                $envelopeApi = new EnvelopesApi($apiClient);
                // 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 = new  TemplateRole();
                $templateRole->setEmail("XXXXX"); // recipient email
                $templateRole->setName("XXX"); //recipient name
                $templateRole->setRoleName("XXX");  //role name           

                // instantiate a new envelope object and configure settings
                $envelop_definition = new EnvelopeDefinition();
                $envelop_definition->setEmailSubject("[DocuSign PHP SDK] - Signature Request Sample");
                $envelop_definition->setTemplateId("XXXXX"); // template id
                $envelop_definition->setTemplateRoles(array($templateRole));

                // set envelope status to "sent" to immediately send the signature request
                $envelop_definition->setStatus("sent");

                // optional envelope parameters
                $options = new CreateEnvelopeOptions();
                $options->setCdseMode(null);
                $options->setMergeRolesOnDraft(null);

                //echo "<pre>";print_r($loginInformation);exit();
                // create and send the envelope (aka signature request)
                $envelop_summary = $envelopeApi->createEnvelope($accountId, $envelop_definition, $options);
                if(!empty($envelop_summary))
                {
                    echo "$envelop_summary";
                }
            }
        }
    }
}
catch (DocuSign\eSign\ApiException $ex)
{
    echo "Exception: " . $e->getResponseBody()->message . "\n";
}

Я пытался найти проблему, но не смог ее найти.

1 Ответ

0 голосов
/ 28 апреля 2019

Вы начали со старого, устаревшего примера кода.

Все новые интеграции с DocuSign должны использовать аутентификацию OAuth.

Посмотрите пример кода запуска PHP .

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