Pagos vinculados a sesión

3.1.7. Pagos vinculados a sesión#

A veces no basta con comprobar si se ha pagado un pedido. Por ejemplo, cuando se vende acceso a medios en línea, el editor puede querer que cada cliente pague exactamente por el mismo producto. Taler apoya este modelo permitiendo que el mechant compruebe si el «recibo de pago» está disponible en el dispositivo actual del usuario. Esto evita que los usuarios compartan fácilmente el acceso a los medios transmitiendo un enlace a la página de cumplimiento. Por supuesto, los usuarios sofisticados también podrían compartir los recibos de pago, pero esto no es tan fácil como compartir un enlace, y en este caso es más probable que simplemente compartan los medios directamente.

Para utilizar esta función, el comerciante debe asignar primero al navegador actual del usuario un session_id efímero, normalmente a través de una cookie de sesión. Al ejecutar o reproducir un pago, el monedero recibirá una firma adicional (session_sig). Esta firma certifica que el monedero mostró un recibo de pago para el pedido correspondiente en la sesión actual.

Los pagos vinculados a una sesión se activan pasando el parámetro session_id al punto final /check-payment. El monedero redirigirá entonces a la página de cumplimiento, pero incluirá un parámetro adicional session_sig. El frontend puede consultar /check-payment tanto con el session_id como con el session_sig para verificar que la firma es correcta.

El último identificador de sesión que se utilizó con éxito para demostrar que el recibo de pago está en el monedero del usuario también está disponible como last_session_id en la respuesta a /check-payment.