- Pautas de integración
- Uso de diversas fuentes de detalles de pago
Uso de diversas fuentes de detalles de pago
Cuando realiza varias llamadas de Mastercard GatewayDirectAPI (por ejemplo, Pay, Authorize, Refund, Capture, Save, Initiate Authentication, Authenticate Payer), se deben proporcionar detalles de la tarjeta. Estos detalles de pago se pueden especificar mediante una serie de “fuentes”.
Fuentes compatibles
- Campos de solicitud: Detalles de pago especificados directamente en la solicitud (por ejemplo, número de tarjeta, vencimiento de la tarjeta, código de seguridad de tarjeta).
- Sesión: detalles de pago almacenados contra una Sesión de pago.
- Token de tarjeta: los detalles de pago se almacenan en un depósito seguro con respecto a un token (si usa Tokenization).
Reglas de precedencia
Si un detalle de una tarjeta, por ejemplo un número de tarjeta, se proporciona más de una vez en una sola solicitud porque está contenido en dos o más fuentes, las reglas de precedencia determinarán la fuente utilizada. El orden de precedencia es el siguiente:
- Campos de solicitud de DirectAPI
- Identificador de sesión
- Token de tarjeta
Es decir, los datos contenidos en los campos de solicitud de DirectAPI anularán los datos almacenados en la sesión, los cuales anularán los detalles del token.
Por ejemplo, si incluye un identificador de sesión (que contiene el número de tarjeta, la fecha de vencimiento y el CSC) y un token (que contiene el número de tarjeta y su fecha de vencimiento) en una solicitud Pay, entonces, según el orden de precedencia, los detalles de tarjeta especificados en el identificador de sesión se usarán en la transacción financiera.
Referencia de API de fuente de fondos[REST][NVP]
Ejemplos
Puede especificar los detalles de pago mediante una de estas fuentes o una combinación de ellas.
Realizar transacción con detalles de token y sesión
Desea enviar una operación Pay con el número de tarjeta y la fecha de vencimiento almacenados en un token y el CSC recopilado en una sesión. La siguiente solicitud de ejemplo muestra cómo proporcionar fuentes de token y sesión en la solicitud Pay:
Método HTTP | PUT |
URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/<merchant>/order/<orderId>/transaction/<transactionId> |
JSON |
{ "apiOperation": "PAY", "session": { "id": "SESSION000177777777777777777777" }, "sourceOfFunds": { "token": "9999999999999999" }, "order": { "amount": "34.00", "currency": "AUD" } } |
El lenguaje JSON anterior supone que:
- Anteriormente se creó una sesión con un identificador "SESSION000177777777777777777777" y contiene el CSC.
- Previamente se almacenó un token con un identificador "9999999999999999" que contiene el número de tarjeta y la fecha de vencimiento.
Actualizar un token con una nueva fecha de vencimiento
Desea actualizar la fecha de vencimiento en un token almacenado mediante la operación Tokenization (pero sin cambiar el número de tarjeta). El token que suministra en la URL de solicitud identifica el token que desea actualizar. Suministrar este mismo token como fuente de detalles de pago provocará que sus detalles almacenados anteriormente se vuelvan a usar. Esto significa que no debe volver a capturar el número de tarjeta. Si proporciona la nueva fecha de vencimiento en la sección Detalles de tarjeta de la solicitud, ese valor anulará la fecha de vencimiento ya almacenada en el token (consulte Reglas de precedencia).
La siguiente solicitud de ejemplo muestra cómo proporcionar fuentes de detalles de pago y token, usando la operación Tokenization:
Método HTTP | PUT |
URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/<merchant>/token/9999999999999999 |
JSON |
{ "sourceOfFunds": { "provided": { "card": { "expiry": { "month": "05", "year": "13" }, "number": "5123456789012346" } }, "type": "CARD" } } |
El lenguaje JSON anterior supone que:
- Anteriormente se almacenó un token con ID "9999999999999999" que contiene un número de tarjeta y una fecha de vencimiento.
El resultado de esta operación será que el token "9999999999999999" ahora tiene una fecha de vencimiento de 05/13 (el número de la tarjeta se mantiene sin cambios).