Вопрос или проблема
Вот детали аккаунта
$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 с подробным описанием проблемы, кодом, который вы используете, и всей информацией, касающейся вашего окружения.