El uso de sesiones permite integraciones más sofisticadas donde se capturan diferentes partes de la solicitud en diferentes puntos del flujo de pago o a través de diferentes 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.
Trabajar 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:
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 Tokenización. Esto es útil si desea realizar un pago y también guardar los datos de la tarjeta. Tenga en cuenta que la versión de DirectAPI para las operaciones que hacen referencia a la sesión debe coincidir con la versión de DirectAPI que se usa al actualizar o agregar campos de solicitud a la sesión.
Una vez que inicia una operación que hace referencia a una sesión (excepto Open Wallet
, Update Session
, Update Session From Wallet
), el código de seguridad de tarjeta, si está almacenado en la sesión, se elimina. Esto es necesario para cumplir con las regulaciones PCI. Si desea guardar los detalles de la tarjeta para su uso posterior, puede hacerlo realizando una operación de Tokenización usando la sesión.
Reglas de precedencia
Al enviar una solicitud de operación, los campos de solicitud y valores almacenados para la sesión solo se usan 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 la API de Retrieve Session[REST][NVP]
Tomar decisiones comerciales basadas en el contenido de la sesión.
Si toma decisiones comerciales basadas en datos obtenidos de una sesión, debe utilizar la capacidad de bloqueo optimista de la sesión. Esto garantiza que los datos que utilizó para tomar sus decisiones sean los mismos que los utilizados para procesar la operación de su 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
.
- Registre el valor de
session.version
en el contenido de la sesión devuelto.
- Tomar decisiones de negocio basadas en el contenido de la sesión devuelta.
- Cuando envía su operación de solicitud al motor de pagos, pase
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:
- Calcular el monto del recargo según el tipo de tarjeta proporcionada por el pagador.
- Cálculo del monto de envío según la dirección de envío proporcionada por el pagador.
Referencia de la API de Retrieve Session[REST][NVP]
Pay[REST][NVP]