По любому вопросу мы в одном клике

Задать вопрос

Генерация seToken

Что такое seToken

seToken (Self Encrypted Token) - это криптограмма, используемая для безопасной передачи данных карты. Ее можно использовать в следующих запросах, когда карточные данные собираются на стороне мерчанта:

Ниже описано, как создать seToken и отправить в запросе на оплату.

Формат seToken до шифрования

До шифрования seToken представляет собой строку, которая включает в себя от 5 до 9 параметров, разделенных символом "/".

Параметры, включенные в состав seToken

В таблице ниже перечислены параметры, которые можно использовать в строке seToken. Эти параметры должны быть включены в строку в строгой последовательности согласно этой таблице.

Обязательно Название Тип Описание
Да

timestamp String Дата запроса согласно ISO 8601:2004 в формате YYYY-MM-DDThh:mm:ss±hh:mm.
Да

uuid String [1..32] Идентификатор в стандарте UUID сформирован в соответствии с документом
Условие*

PAN Integer [1..19] Номер карты списания денежных средств. Запрос должен включать либо PAN, либо bindingId.
Условие (см. описание)

CVV Integer Проверочный код карты. Этот параметр обязателен, если для мерчанта не выбрано разрешение Может проводить оплату без подтверждения CVC.
Условие*

EXPDATE Integer Срок действия карты в следующем формате: YYYYMM, где YYYY - год, MM - месяц.
Условие*

mdOrder String [1..36] Идентификатор заказа для оплаты криптограммой.
Условие*

bindingId String [1..255] Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Запрос должен включать либо PAN, либо bindingId.
Нет

cardholder String Имя держателя карты латинскими буквами. Этот параметр передается только после оплаты заказа.
Нет

registeredFrom String SDK, который использовался для регистрации заказа. Допустимые значения: MSDK_CORE, MSDK_FORMS, MSDK_PAYMENT, WSDK_CORE, WSDK_PAYMENT

* Обязательно для некоторых методов. Список обязательных параметров seToken, используемых в определенном методе, перечислен в описании соответствующего метода в Справочнике API.

Пример сгенерированной строки:

2020-09-15T10:00:33+03:00/9bb1501a-1547-425a-a022-1db5ff8f72c4/5555555555555599/123/202412

где:

Алгоритм создания платежного запроса

  1. Отправьте запрос ключа

    Для этого откройте ссылку https://mts.rbsuat.com/payment/se/keys.do.

    В результате получаем ключ в следующем формате:

    {
    "keys": [
        {
            "keyValue": "-----BEGIN PUBLIC KEY-----{PUBLIC KEY BODY}-----END PUBLIC KEY-----",
            "protocolVersion": "RSA",
            "keyExpiration": 1893456000000
         },
        {
            "keyValue": "-----BEGIN PUBLIC KEY-----{PUBLIC KEY BODY}-----END PUBLIC KEY-----",
            "protocolVersion": "RSA",
            "keyExpiration": 1924992000000
        }
    ]
    }

    Где:

    • keyValue - строковое представление публичного ключа RSA 2048
    • keyExpiration - планируемая дата истечения срока действия ключа, дата в секундах по стандарту времени UNIX
    • protocolVersion - версия алгоритма шифрования
  2. Зарегистрируйте заказ

  3. Сгенерируйте строку, которую необходимо зашифровать

    В нашем примере выше значение orderId=b94eac90-e487-796a-8ed2-cf5a00096352 указано как `UUID. Получаем строку:

    2020-09-15T10:00:33+03:00/9bb1501a-1547-425a-a022-1db5ff8f72c4/5555555555555599/123/202412

  4. Зашифруйте полученную строку

    Полученная строка должна быть зашифрована с использованием алгоритма шифрования RSA "RSA/None/PKCS1Padding" с длиной ключа 2048.

    Пример результата шифрования:

    Cfqv4t2XHBb9k8ixM7jxxCvziETS4koa3bV3F0QUvGVY47nKyMBqjGzV/rvmCAw6KzwoBDzeLsqwBLEzvQhaF627ZS0OJnhttBi4fL3/h/sBSwFtxr3s+oVUeoE3e4SNVUq9vciinOyNCIKqfpeQya+pOUYt3MgrtSeu66Ar12XEj4k6lecZN7Ffquj9RqhZsYhP63np5VCxJR90cNQG+TMWIFU6rqxLAe4gzCJtcXNrPT8aDOI201Zwd+e4K1YnrI7dZGlibO7MVMPB9m7NJaJTHko/MiJNWumAjS4yDDovLraIKMwOFTvAhqXsHslthpcUO0GZXEIaDRgERD7+jw==

    Перед отправкой в REST-запросе к зашифрованной строке нужно применить URL-кодирование:
    Cfqv4t2XHBb9k8ixM7jxxCvziETS4koa3bV3F0QUvGVY47nKyMBqjGzV%2FrvmCAw6KzwoBDzeLsqwBLEzvQhaF627ZS0OJnhttBi4fL3%2Fh%2FsBSwFtxr3s%2BoVUeoE3e4SNVUq9vciinOyNCIKqfpeQya%2BpOUYt3MgrtSeu66Ar12XEj4k6lecZN7Ffquj9RqhZsYhP63np5VCxJR90cNQG%2BTMWIFU6rqxLAe4gzCJtcXNrPT8aDOI201Zwd%2Be4K1YnrI7dZGlibO7MVMPB9m7NJaJTHko%2FMiJNWumAjS4yDDovLraIKMwOFTvAhqXsHslthpcUO0GZXEIaDRgERD7%2Bjw%3D%3D

  5. Отправьте запрос на оплату с seToken.

    См. пример запроса платежа с помощью seToken здесь.

Категории:
eCommerce API V1
Категории
Результаты поиска