Доступ к финансовым методам
Управление доступом к финансовым методам и получение мастер-токена в веб-интерфейсе Яндекс Директа.
Для использования финансовых методов необходимо предварительно разрешить доступ к ним и получить мастер-токен в веб-интерфейсе. На основе мастер-токена формируются финансовые токены. Финансовый токен необходимо указывать при каждом вызове финансового метода.
Получение мастер-токена
Мастер-токен используется для формирования финансовых токенов, которые необходимы для вызова финансовых методов. Для получения мастер-токена необходимо авторизоваться в Директе с тем логином, от имени которого в дальнейшем будет осуществляться вызов финансовых методов.
Перейдите на вкладку Финансовые операции на странице Управление доступом к API Директа.
- Установите флажок Разрешить финансовые операции и нажмите кнопку Сохранить изменения.
Нажмите кнопку Выписать новый мастер-токен.
Внимание.При получении мастер-токена предыдущий мастер-токен становится недействительным и больше не может использоваться.
Отображается диалог получения доступа к API через SMS (необходимо для подтверждения любых действий в Яндексе, связанных с финансами). Если номер телефона отсутствует в Паспорте, добавьте его.
- Нажмите кнопку Отправить SMS.
Введите код из SMS и нажмите кнопку Проверить.
Отображается новый мастер-токен, как показано на рисунке.
Внимание.Мастер-токен показывается в веб-интерфейсе один раз. Если он не сохранен, узнать его невозможно, и требуется получать новый мастер-токен.
Нажмите ссылку Вернуться к настройкам.
Отображается дата выдачи мастер-токена.
Чтобы сделать текущий мастер-токен недействительным, не выписывая новый токен, нажмите кнопку Сбросить мастер-токен.
Сброс равносилен запрету финансовых операций, поскольку без активного мастер-токена невозможно формировать финансовые токены.
Чтобы API Яндекс Директа удалил номер последней финансовой операции, нажмите Сбросить значение счетчика.
Сброс помогает, если в приложении утеряна нумерация финансовых операций. После сброса нумерация может начинаться заново.
Финансовый токен
При вызове финансового метода необходимо дополнительно указывать следующие параметры:
- operation_num — порядковый номер операции;
- finance_token — финансовый токен.
Параметр operation_num — целое число в диапазоне от 1 до 9223372036854775807. При каждом вызове финансового метода номер операции должен быть больше, чем в предыдущем вызове любого финансового метода. Приращение номера и начальный номер могут быть произвольными.
Параметр finance_token необходимо сформировать путем шифрования SHA256. Шифруется строка, полученная конкатенацией следующих подстрок:
- мастер-токен;
- номер операции (параметр operation_num);
- название вызываемого финансового метода;
- название операции (для метода AccountManagement (Live));
нормализованный логин пользователя, от имени которого делается запрос к API.
Внимание. Если логин пользователя содержит точки и символы верхнего регистра (заглавные буквы), то для получения нормализованного логина их следует заменить, соответственно, дефисами и символами нижнего регистра.
Пример формирования финансового токена:
Python
import hashlib
masterToken = 'AEgchkX2M3FBL8lU'
operationNum = 119
usedMethod = 'CreateInvoice'
login = 'agrom'
financeToken = hashlib.sha256(masterToken + str(operationNum) + usedMethod + login).hexdigest()
PHP
$master_token = 'AEgchkX2M3FBL8lU';
$operation_num = 119;
$used_method = 'CreateInvoice';
$login = 'agrom';
$finance_token = hash("sha256", $master_token . $operation_num . $used_method . $login);