Para cualquier consulta estamos a un clic

Hacer una pregunta

Generación de seToken

Qué es seToken

seToken (Self Encrypted Token) - es un criptograma usado para la transmisión segura de datos de tarjeta. Se puede usar en las siguientes solicitudes, cuando los datos de la tarjeta se recopilan del lado del comerciante:

A continuación se describe cómo crear seToken y enviarlo en una solicitud de pago.

Formato de seToken antes del cifrado

Antes del cifrado, seToken representa una cadena que incluye de 5 a 9 parámetros, separados por el símbolo "/".

Parámetros incluidos en la composición de seToken

En la tabla a continuación se enumeran los parámetros que se pueden usar en la cadena seToken. Estos parámetros deben incluirse en la cadena en secuencia estricta según esta tabla.

Obligatorio Nombre Tipo Descripción

timestamp String Fecha de la solicitud según ISO 8601:2004 en formato YYYY-MM-DDThh:mm:ss±hh:mm.

uuid String [1..32] Identificador en el estándar UUID formado de acuerdo con el documento
Condición

PAN Integer [1..19] Número de tarjeta para el débito de fondos. La solicitud debe incluir PAN o bindingId.
Obligatorio para algunos métodos. La lista de parámetros obligatorios de seToken, usados en un método determinado, se enumera en la descripción del método correspondiente en Referencia API.
Condición (ver descripción)

CVV String [3] Código de verificación de la tarjeta. Este parámetro es obligatorio si para el comerciante no está seleccionado el permiso Puede procesar el pago sin confirmación CVC.
Se permiten solo dígitos.
Condición

EXPDATE Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM, donde YYYY - año, MM - mes.
Obligatorio para algunos métodos. La lista de parámetros obligatorios de seToken, usados en un método determinado, se enumera en la descripción del método correspondiente en Referencia API.
Condición

mdOrder String [1..36] Identificador del pedido para el pago con criptograma.
Obligatorio para algunos métodos. La lista de parámetros obligatorios de seToken, usados en un método determinado, se enumera en la descripción del método correspondiente en Referencia API.
Condición

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo puede utilizarse si el comerciante tiene permiso para trabajar con vinculaciones. La solicitud debe incluir PAN o bindingId.
Obligatorio para algunos métodos. La lista de parámetros obligatorios de seToken, usados en un método determinado, se enumera en la descripción del método correspondiente en Referencia API.
No

cardholder String Nombre del titular de la tarjeta en letras latinas.
No

registeredFrom String SDK que se utilizó para registrar el pedido. Valores permitidos: MSDK_CORE, MSDK_FORMS, MSDK_PAYMENT, WSDK_CORE, WSDK_PAYMENT

Ejemplo de cadena generada:

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

donde:

Algoritmo de creación de solicitud de pago

  1. Envíe solicitud de clave

    Para esto, abra el enlace https://dev.bpcbt.com/payment/se/keys.do.

    Como resultado obtenemos una clave en el siguiente formato:

    {
    "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
        }
    ]
    }

    Donde:

    • keyValue - representación en cadena de la clave pública RSA 2048
    • keyExpiration - fecha planificada de vencimiento de la clave, fecha en segundos según el estándar de tiempo UNIX
    • protocolVersion - versión del algoritmo de cifrado
  2. Registre el pedido

  3. Genere la cadena que necesita ser cifrada

    En nuestro ejemplo anterior el valor orderId=b94eac90-e487-796a-8ed2-cf5a00096352 está indicado como UUID. Obtenemos la cadena:

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

  4. Cifre la cadena obtenida

    La cadena obtenida debe ser cifrada utilizando el algoritmo de cifrado RSA "RSA/None/PKCS1Padding" con una longitud de clave de 2048.

    Ejemplo del resultado del cifrado:

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

    Antes del envío en la solicitud REST, es necesario aplicar codificación URL a la cadena cifrada:
    Cfqv4t2XHBb9k8ixM7jxxCvziETS4koa3bV3F0QUvGVY47nKyMBqjGzV%2FrvmCAw6KzwoBDzeLsqwBLEzvQhaF627ZS0OJnhttBi4fL3%2Fh%2FsBSwFtxr3s%2BoVUeoE3e4SNVUq9vciinOyNCIKqfpeQya%2BpOUYt3MgrtSeu66Ar12XEj4k6lecZN7Ffquj9RqhZsYhP63np5VCxJR90cNQG%2BTMWIFU6rqxLAe4gzCJtcXNrPT8aDOI201Zwd%2Be4K1YnrI7dZGlibO7MVMPB9m7NJaJTHko%2FMiJNWumAjS4yDDovLraIKMwOFTvAhqXsHslthpcUO0GZXEIaDRgERD7%2Bjw%3D%3D

  5. Envíe la solicitud de pago con seToken.

    Ver ejemplo de solicitud de pago utilizando seToken aquí.

Categorías:
eCommerce API V1
Categorías
Resultados de búsqueda