# Guion del vídeo, para comentar o para lo que necesites.
# Es una PROYECCIÓN del nuestro: lleva el contenido —qué se dice, qué se ve, en
# qué orden y cuánto dura— y no la maquinaria que lo convierte en vídeo.
id: productos-dos-tiempos
title: Transacción a dos fases
audience: Desarrollador integrando Productos que necesita evitar el error de integración más común
objetivo: >
  Al terminar, el espectador sabe que una transacción tiene dos fases, que puede entregar en la
  primera y por qué, cuánto tarda la segunda, y que la sesión es el registro de las dos — el aviso
  es el atajo, no la única fuente.
cta: 'Siguiente: Webhooks, para saber cómo llegan los avisos y qué debe hacer tu servidor.'
target_duration_s: 188
storyboard:
  - 'n': 1
    on_screen: Una transacción, dos fases
    narracion: >-
      Una transacción con SPIDI ocurre en dos fases, y entender eso es lo que separa una integración
      que funciona de una que parece funcionar. Vamos con las dos, y con lo que cada una te deja
      hacer.
    visual: Título sobre una línea de tiempo de dos tramos, el segundo más largo que el primero.
    duracion_s: 14
  - 'n': 2
    on_screen: Fase 1 — El pago
    narracion: >-
      La primera fase es el pago. Tu cliente paga y el dinero sale de sus manos. Y aquí está lo que
      conviene retener: no queda en poder de SPIDI. Entra en una cuenta propia del banco, y el banco
      es su custodio. Tu cliente ya no lo controla y no puede echarse atrás. La sesión pasa a
      pagado, y te llega el aviso payment_session.paid.
    visual: >-
      El dinero sale de la mano de quien paga y entra en una caja fuerte rotulada como del banco,
      fuera del alcance de las dos partes.
    duracion_s: 25
  - 'n': 3
    on_screen: Aquí ya puedes entregar
    narracion: >-
      Y eso te deja hacer algo que mucha gente no se atreve: ya puedes entregar. No esperes a la
      segunda fase para habilitar tu servicio o despachar tu producto. El motivo es el mecanismo, no
      una promesa: el dinero está en un banco y el banco lo custodia. La segunda fase no decide si
      el dinero es tuyo, sino cuándo lo ves en tu cuenta.
    visual: Un paquete saliendo hacia el cliente mientras el reloj de la segunda fase todavía corre.
    duracion_s: 25
  - 'n': 4
    on_screen: Fase 2 — La acreditación
    narracion: >-
      La segunda fase es la acreditación. El dinero se mueve desde esa cuenta del banco hasta la
      tuya, o hasta tantas cuentas como hayas pedido que se reparta. Aquí se aplica la comisión del
      banco, y por eso lo que se acredita es el monto neto. Te llega el aviso
      payment_session.accredited.
    visual: >-
      El dinero pasa de la caja fuerte del banco a la cuenta del comercio; una porción fina se
      separa antes de llegar.
    duracion_s: 20
  - 'n': 5
    on_screen: Entre uno y dos minutos
    narracion: >-
      Y tarda más de lo que la gente espera: entre uno y dos minutos, no segundos. Está medido en
      transacciones reales. Por eso, si consultas justo después de pagar, el campo del crédito viene
      vacío. No es un fallo: es que la segunda fase todavía no ha ocurrido. Si sondeas, insiste.
    visual: >-
      Un cronómetro con la aguja entre uno y dos minutos, junto a un campo de respuesta que todavía
      viene vacío.
    duracion_s: 20
  - 'n': 6
    on_screen: Cómo te enteras de cada fase
    visual: Lámina de sección, en silencio.
    duracion_s: 2
  - 'n': 7
    on_screen: La sesión es el registro
    narracion: >-
      Hasta aquí, qué pasa con el dinero. Ahora, cómo te enteras. Y hay una idea que lo ordena todo:
      la sesión es el registro de la transacción, y las dos fases se ven ahí. Una sola consulta te
      da el estado completo. El aviso no es la única fuente: es el atajo, porque te avisa en cuanto
      ocurre y así no tienes que preguntar.
    visual: >-
      Una ficha de sesión que contiene las dos fases dentro, y al lado una campana que solo señala
      hacia ella.
    duracion_s: 25
  - 'n': 8
    on_screen: El status no cambia. El crédito sí
    narracion: >-
      Con esa idea, la trampa se ve venir. El status se queda en pagado para siempre: no existe un
      estado acreditado, así que si sondeas esperándolo, esperas para siempre. Lo que cambia no es
      el status, sino que el campo del crédito deja de venir vacío. Es otro bucle y otra condición
      de salida.
    visual: Un campo de estado congelado, y al lado otro campo que pasa de vacío a lleno.
    duracion_s: 21
  - 'n': 9
    on_screen: Guarda el session_id
    narracion: >-
      Y por eso importa que la sesión lo tenga todo. Si tu servidor estuvo caído, SPIDI reintenta, y
      luego se rinde: no hay reenvío. Cuando vuelvas no habrá un aviso esperándote, habrá una sesión
      que puedes consultar. Guarda el identificador de cada sesión, porque es tu única llave de
      vuelta: no hay forma de listar tus sesiones.
    visual: >-
      Un servidor caído, avisos que se acumulan y se rinden, y una llave que abre la ficha de la
      sesión.
    duracion_s: 22
  - 'n': 10
    on_screen: 'Siguiente: los avisos'
    narracion: >-
      Eso son las dos fases: entregas en la primera, cuadras con la segunda, y la sesión guarda las
      dos. Sigue con los avisos, para ver cómo llegan firmados y qué tiene que hacer tu servidor con
      ellos.
    visual: Cierre; una flecha apunta hacia el tema de los avisos firmados.
    duracion_s: 14
