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

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

Генерация seToken

Что такое seToken

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

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

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

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

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

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

ОбязательноНазваниеТипОписание
ДаtimestampStringДата запроса согласно ISO 8601:2004 в формате YYYY-MM-DDThh:mm:ss±hh:mm.
ДаuuidString [1..32]Идентификатор в стандарте UUID сформирован в соответствии с документом
УсловиеPANInteger [1..19]Номер карты списания денежных средств. Запрос должен включать либо PAN, либо bindingId. Обязательно для некоторых методов. Список обязательных параметров seToken, используемых в определенном методе, перечислен в описании соответствующего метода в Справочнике API.
Условие (см. описание)CVVString [3]Проверочный код карты. Этот параметр обязателен, если для мерчанта не выбрано разрешение Может проводить оплату без подтверждения CVC.
Допускаются только цифры.
УсловиеEXPDATEInteger [6]Срок действия карты в следующем формате: YYYYMM, где YYYY - год, MM - месяц. Обязательно для некоторых методов. Список обязательных параметров seToken, используемых в определенном методе, перечислен в описании соответствующего метода в Справочнике API.
УсловиеmdOrderString [1..36]Идентификатор заказа для оплаты криптограммой. Обязательно для некоторых методов. Список обязательных параметров seToken, используемых в определенном методе, перечислен в описании соответствующего метода в Справочнике API.
УсловиеbindingIdString [1..255]Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Запрос должен включать либо PAN, либо bindingId. Обязательно для некоторых методов. Список обязательных параметров seToken, используемых в определенном методе, перечислен в описании соответствующего метода в Справочнике API.
НетcardholderStringИмя держателя карты латинскими буквами.
НетregisteredFromStringSDK, который использовался для регистрации заказа. Допустимые значения: MSDK_CORE, MSDK_FORMS, MSDK_PAYMENT, WSDK_CORE, WSDK_PAYMENT

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

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

где:

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

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

    Для этого откройте ссылку https://3dsec.berekebank.kz/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 здесь.

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