Configuración de pagos seguros con Interledger e ILP
Clase 16 de 16 • Curso de Pagos Abiertos con Interledger
Resumen
Configura y ejecuta un flujo de pago seguro de punta a punta con cotización, consentimiento y pago saliente. Aquí verás cómo el emisor y el receptor coordinan montos, límites y tiempos usando ILP y Interledger, con permisos precisos mediante access token y grant. Un proceso claro, reproducible y listo para producción.
¿Cómo se crea la cotización (quote) con ILP e Interledger?
La cotización se crea en el servidor del receptor, es decir, en Bob. Aunque la autorización viene del authServer de Alicia, el quote depende del incoming payment que vive en el servidor de Bob. Se usa el access token con permiso de quote create para solicitar la cotización.
- Se asocia la wallet address de Alicia como emisor.
- El método de transporte es ILP del protocolo Interledger.
- El console.log muestra un objeto con términos: qué se recibe, cuánto se debita, quién recibe, expiración, creado y método.
- El objeto devuelto especifica cuánto debe enviar el emisor para que el receptor reciba la cantidad prometida.
Habilidades y conceptos: configuración de objetos de datos de cotización. Manejo de permisos con access token. Lectura de respuesta del servidor para verificar montos, tiempos y método ILP.
¿Cómo consentir el pago saliente con grant y redirect?
Para la concesión del pago saliente (outgoing payment), se solicita un permiso del lado del emisor, Alicia. Este permiso queda limitado exactamente al monto calculado en el quote y exige interacción por redirect para que el usuario consienta.
- La wallet address de Alicia decide si otorga el token para crear el outgoing payment.
- Se definen límites: no gastar más de lo que el quote indicó. En openPayments, el quote trae lo que recibe Bob, y se puede restringir a crear un solo pago por ese monto.
- En identificación, se especifica cómo y con qué token operar para otras cuentas usando este ID.
- En la terminal se ejecuta el script con Node: guardar cambios y correr con node index.js.
- Vía redirect, el navegador muestra la billetera que solicita acceso a un pago a nombre del cliente DMBR por diez dólares, con acciones aceptar o declinar.
- Se sugiere usar el módulo Redline para un prompt: “Presione enter para continuar con el pago saliente”.
Flujo de autorización de grant y finalización:
- La URL enviada continúa el consentimiento vía endpoint y token que reanuda la transacción.
- Si el usuario consiente, se devuelve un grant con access token listo para la creación del pago saliente.
- Si no, el grant queda en estado pendiente y se debe reintentar con la función de finalize, gestionando errores o espera.
¿Cómo crear y verificar el outgoing payment vinculado al quote?
Con el access token válido, se crea el pago saliente en el resource server de Alicia, enlazándolo al quote.
- Primer argumento: configuración con la URL del resource server de Alicia y el access token con límites del quote.
- Segundo argumento: wallet address ID para debitar desde la cuenta de Alicia y quote ID para enlazar el pago a la cotización.
- El servidor devuelve un objeto con: ID como URL única del pago, monto a debitar, monto a recibir (diez dólares para Bob), referencia del incoming payment de Bob y estado del pago: pendiente, completado o falló.
- Se sigue nuevamente el redirect en el explorador, se acepta, y en Visual Studio Code se presiona Enter. El console.log muestra monto recibido, monto debitado, método ILP y expiración.
Buenas prácticas y habilidades:
- Validar que los límites del quote se cumplan para evitar sobrecargos.
- Confirmar estados del recurso antes de continuar el flujo.
- Mantener guardado el código antes de ejecutar en la terminal.
¿Tienes dudas, ideas o quieres compartir cómo aplicarás este flujo con Interledger y ILP? Deja tu comentario y cuenta qué vas a construir con esto.