Библиотека для формирования криптограмм по данным, полученным из платежной формы. Библиотека формирует ответ асинхронно. Для получения результата используется callback.
Используется продавцом на своём сайте. В библиотеку передается перечень параметров платежной формы (mdOrder, pan, expiry и пр.), а на выходе получается готовая для передачи на backend эквайринга криптограмма.
Обратите внимание, что для использования этой библиотеки может быть необходимо соответствие стандарту PCI DSS, поскольку она обрабатывает данные карты.
<script src="https://sbergate.com/payment/modules/card-kit-core/card-kit-core.js"></script> <script> window.CKCToken.generateWithCard( { pan: '2200000000000053', cvc: '123', expiryMMYY: '12/34', mdOrder: '63447c9c-b432-7c8e-962f-161c0008f9da', // pubKey: '-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAioZS/AN/xWtZsQNFjOc8VjKnE5xwQuT0zV0q2j2JpBN66We1+dya9gfqt14Mg53tHfvTB+hbHpmK8mYlPdpZXnIIN3TuBv9llfwmAMm4pFRDG8KeIgOVLSGptHufjwoh2iE4YfxZWgCbnkqjDk6YiTPdy+W7nxF+fPUEsFE1YJDTRwzVqpsbjfKW9tQAjDxpAwfsiyhk0NzTEsDahWtjk1+WaqqrN0LRQgtaTnnbjSr3npmegu63mgTXBX1MT5olRY+BjCaPCZLt+6sFNd/wVI+UBo3/U6jHEHVe3T1vdZWNhJe2twFzrSSpm5aevDK7OpQzMT7v2wUIRWIlFvIxFwIDAQAB-----END PUBLIC KEY-----', }, function (result) { console.log('Result:', result); // // Example result: // { // token: null, // errors: [ // {field: "pan", error: "invalid-length"}, // {field: "cvc", error: "required"} // ] // } } ); </script>
Параметр | Обязательно | Назначение |
---|---|---|
mdOrder | да | Идентификатор заказа |
pan | да | Номер карты (без пробелов) |
cvc | нет | CVV/CVC код карты |
expiryMMYY | нет | дата в формате ММ/ГГ или ММГГ |
pubKey | нет | Открытый ключ шифрования (если параметр не задан, ключ будет получен с сервера автоматически) |
Тип ошибки | Пояснение |
---|---|
required | Поле обязательно. |
invalid-format | Недопустимый формат данных. |
invalid-length | Недопустимая длина поля. |
invalid-pub-key | Неверный ключ. |
get-pub-key-failed | Не удалось получить ключ с сервера. |
{ token: "...", // obtained token ready for passing errors: [ // errors array { field: "pan", // Field name error: "invalid-length" // Error type }, ] }
Библиотеку нужно использовать строго через URL, указанный в документации.
curl --location --request POST 'https://sbergate.com/payment/rest/paymentorder.do' \ --header 'Content-type: application/x-www-form-urlencoded' \ --data-urlencode 'MDORDER=63447c9c-b432-7c8e-962f-161c0008f9da' \ --data-urlencode 'language=en' \ --data-urlencode 'TEXT=CARDHOLDER NAME' \ --data-urlencode 'email=' \ --data-urlencode 'Cfqv4t2XHBb9k8ixM7jxxCvziETS4koa3bV3F0QUvGVY47nKyMBqjGzV%2FrvmCAw6KzwoBDzeLsqwBLEzvQhaF627ZS0OJnhttBi4fL3%2Fh%2FsBSwFtxr3s%2BoVUeoE3e4SNVUq9vciinOyNCIKqfpeQya%2BpOUYt3MgrtSeu66Ar12XEj4k6lecZN7Ffquj9RqhZsYhP63np5VCxJR90cNQG%2BTMWIFU6rqxLAe4gzCJtcXNrPT8aDOI201Zwd%2Be4K1YnrI7dZGlibO7MVMPB9m7NJaJTHko%2FMiJNWumAjS4yDDovLraIKMwOFTvAhqXsHslthpcUO0GZXEIaDRgERD7%2Bjw%3D%3D' \ --data-urlencode 'userName=tm-api' \ --data-urlencode 'password=XXXXXXX'
Если seToken содержит шифрованные данные о связке (bindingId), вместо запроса paymentorder.do для оплаты следует использовать запрос paymentOrderBinding.do.