Sesión de pago

Una sesión de pago, o simplemente sesión, es un contenedor temporal para cualquier campo de solicitud y valor de operaciones que hagan referencia a una sesión. Esto le permite emplear una sesión en una operación para hacer referencia a los campos de solicitud y valores, en lugar de proporcionarlos directamente en la solicitud de operación. Cuando el Mastercard Payment Gateway recibe una operación que hace referencia a una sesión, la solicitud final se forma al combinar los campos de solicitud de la sesión y aquellos proporcionados directamente en la solicitud.

El uso de sesiones permite integraciones más sofisticadas en que se capturan diferentes partes de la solicitud en distintos puntos del flujo de pago o a través de distintos canales. Por ejemplo, en los flujos de pago para Hosted Session y billeteras (por ejemplo, Masterpass) se emplean sesiones para recopilar y almacenar información confidencial del pagador. Esto reduce los costos de cumplimiento e implementación de PCI, ya que usted no administra ni almacena ningún detalle de pago en su servidor.

Beneficios clave

  • Reduce los costos de cumplimiento de PCI, ya que usted no administra ni almacena ningún detalle de pago.
  • Facilita la integración, ya que no necesita administrar directamente los valores para los campos de solicitud almacenados en una sesión.
  • Reduce el fraude interno, ya que su personal tiene acceso limitado a los detalles del pagador.
  • Le permite actualizar los campos de solicitud y los valores almacenados para una sesión. Esto es útil cuando una tarjeta de crédito vence o cambian otros detalles del pagador.
  • Le permite recuperar los campos de solicitud y los valores contenidos en una sesión al especificar el identificador de sesión.

Trabajo con sesiones

Crear una sesión

Como primer paso, debe crear una sesión, que luego puede actualizar con los campos de solicitud y los valores que desea almacenar en la sesión.

Puede crear una sesión mediante:

  • La llamada de Create Session, que devuelve un identificador de sesión único que debe proporcionar en solicitudes posteriores para hacer referencia a los contenidos de la sesión.

    De manera opcional, puede proporcionar el límite de autenticación (session.authenticationLimit), que indica el número de operaciones que pueden enviarse al motor de pagos usando el ID de sesión como contraseña. Si no se proporciona, el motor de pagos establece un valor predeterminado.

    Devuelve los siguientes campos:

    • session.id: un identificador de sesión único que debe proporcionar en solicitudes posteriores para hacer referencia a los contenidos de una sesión.
    • session.authenticationLimit: el límite que proporcionó en la solicitud o el valor predeterminado del motor de pagos.
    • session.aes256Key: la clave que puede usar para descifrar los datos confidenciales que se transmiten al sitio web a través del explorador o dispositivo móvil del pagador.
    • session.version: puede usar este campo para implementar el bloqueo optimista del contenido de la sesión.
    • session.updateStatus: un resumen del resultado del último intento para modificar la sesión.

    Referencia de API de Create Session[REST][NVP]

  • El servicio Hosted Session.

    Referencia de session.js[JavaScript]

Actualizar una sesión

Puede agregar o actualizar campos de solicitud en una sesión mediante:

No se pueden eliminar campos de una sesión, sino solamente sobrescribir valores de los campos existentes.
Usar una sesión

Se puede usar una sesión que contiene los campos de solicitud y valores en cualquiera de las siguientes operaciones:

Se recomienda que recupere los detalles de la sesión mediante la operación Retrieve Session y que compruebe los contenidos de la sesión antes de iniciar una operación de pago o tokenización.

Puede realizar varias operaciones mediante la misma sesión, por ejemplo, Pay y Tokenization. Esto es útil si desea realizar un pago y también guardar los detalles de la tarjeta. Tenga en cuenta que la versión de API para las operaciones que hacen referencia a la sesión debe coincidir con la versión de API que se usa al actualizar o agregar campos de solicitud a la sesión.

Cuando se inicia una operación que hace referencia a una sesión (salvo Open Wallet, Update Session, Update Session From Wallet), el código de seguridad de la tarjeta se elimina, si se almacena en la sesión. Esto es necesario para cumplir con los reglamentos de PCI. Si desea guardar los detalles de la tarjeta para un uso posterior, puede hacerlo realizando una operación Tokenization mediante la sesión.

Reglas de precedencia

Al enviar una solicitud de operación, los campos de solicitud y valores almacenados para la sesión se usan solamente si no los proporciona directamente en la solicitud.

Recuperar campos de una sesión

Puede obtener los campos de solicitud y los valores almacenados en una sesión al proporcionar el identificador de sesión.

Referencia de API de Retrieve Session[REST][NVP]

Toma de decisiones de negocio basadas en el contenido de la sesión

Si toma decisiones de negocio según los datos obtenidos a partir de una sesión, debe usar la capacidad de bloqueo optimista de la sesión. Esto garantiza que los datos que usó para tomar sus decisiones sean los mismos que usó para procesar su operación de solicitud.

Para usar la capacidad de bloqueo optimista, debe realizar lo siguiente:

  • Recuperar de manera segura el contenido de la sesión mediante la operación Retrieve Session.
  • Registrar el valor de session.version en el contenido de la sesión devuelta.
  • Tomar decisiones de negocio basadas en el contenido de la sesión devuelta.
  • Cuando envíe su operación de solicitud al motor de pagos, transmita session.version junto con el identificador de sesión como parte de la operación.

Si el contenido de la sesión ha cambiado desde que registró session.version, el motor de pagos rechazará la operación y devolverá error.cause=INVALID_REQUEST.

Entre los ejemplos de decisiones de negocio basadas en el contenido de la sesión se incluyen:

  • Cálculo del monto de recargo según el tipo de tarjeta proporcionado por el pagador.
  • Cálculo del monto de envío según la dirección de envío proporcionada por el pagador.

Referencia de API de Retrieve Session[REST][NVP]

Pay[REST][NVP]

Derechos de autor © 2020 Mastercard