При вызове docusign для документа всегда появляется ошибка AUTHORIZATION_INVALID_TOKEN.

Вопрос или проблема

Вот детали аккаунта
$integrationKey = ‘9eaed807-bd9f-4d38-b858-37f6eccc6b73’; // Ваш интеграционный ключ
$userId = ‘d4300ed6-aa42-47cd-b687-01c825726abd’; // Ваш ID пользователя (GUID)
$accountId = ‘8c637b59-afa2-4821-8c5d-981bacf4ddde’; // Ваш ID аккаунта

при попытке подписаться с помощью PHP всегда возникает эта ошибка:
Ошибка при отправке конверта: Ошибка при запросе к серверу, получен неуспешный HTTP-код [401] с телом ответа: O:8:”stdClass”:2:{s:9:”errorCode”;s:27:”AUTHORIZATION_INVALID_TOKEN”;s:7:”message”;s:59:”Предоставленный токен доступа истек, отозван или неправилен.”;

пожалуйста, проверьте и предложите решения

Хотелось бы получить успешный ответ

Ответ или решение

Ошибка AUTHORIZATION_INVALID_TOKEN при работе с DocuSign, как правило, указывает на проблемы с токеном доступа. Это может быть связано с тем, что токен истек, был отозван или имеет неправильный формат. Давайте разберем возможные причины и пути решения данной проблемы.

1. Проверка токена доступа

Во-первых, убедитесь, что вы используете действующий токен доступа. Токены доступа имеют срок действия и могут истекать. Для получения нового токена доступа вам нужно выполнить OAuth 2.0 аутентификацию.

Шаги для получения нового токена:

  • Убедитесь, что вы используете правильные учетные данные (интеграционный ключ, идентификатор пользователя и идентификатор учетной записи).
  • Если вы используете клиентские учетные данные (client credentials), убедитесь, что вы правильно настраиваете запрос на получение токена. Примерный код на PHP для получения токена:
$client_id = 'ваш_интеграционный_ключ';
$client_secret = 'ваш_секрет_клиента';
$auth_url = 'https://account.docusign.com/oauth/token'; 

$headers = [
    'Content-Type: application/x-www-form-urlencoded',
];

$data = [
    'grant_type' => 'client_credentials',
    'scope' => 'signature',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $auth_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$client_id:$client_secret");

$response = curl_exec($ch);
if ($response === false) {
    die('Ошибка соединения: ' . curl_error($ch));
}

$responseData = json_decode($response);
$accessToken = $responseData->access_token;
curl_close($ch);

2. Проверка использования токена

После получения нового токена убедитесь, что вы используете его правильно в запросах к API DocuSign.

  • Включите токен в заголовки вашего HTTP-запроса. Пример:
$headers = [
    'Authorization: Bearer ' . $accessToken,
    'Content-Type: application/json',
];

3. Убедитесь, что вы используете правильные API-эндпоинты

Ошибки могут возникать также из-за использования неправильного URL для запросов. Убедитесь, что вы обращаетесь к правильному API для вашего окружения (например, тестовое или продуктивное).

4. Проверка прав доступа

Также возможна ситуация, когда у вашего токена нет необходимых прав доступа для выполнения указанных операций. Убедитесь, что ваш интеграционный ключ имеет доступ к нужным API и правильные настройки в консоли разработчиков DocuSign.

5. Отладка

Если все вышеперечисленные шаги были выполнены, но проблема сохраняется:

  • Проверьте логи вашего сервера на предмет дополнительных сообщений об ошибках.
  • Вы можете попробовать использовать инструменты, такие как Postman, для тестирования запросов с токеном, чтобы убедиться, что проблема не в коде PHP.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...