3.1.1. Resumen de instancias#
3.1.1.1. Acerca de este tutorial#
Este tutorial trata sobre cómo procesar pagos usando el backend GNU Taler para comerciantes. La audiencia para este tutorial son desarrolladores de comerciantes (como tiendas web) que están trabajando en la integración de GNU Taler con el Frontend de cara al cliente y el Backoffice de cara al personal.
En este capítulo se explican algunos conceptos básicos. En el segundo capítulo, aprenderá a realizar pagos básicos.
Esta versión del tutorial tiene ejemplos para Python3. Utiliza la librería requests
para peticiones HTTP. También hay disponibles versiones para otros lenguajes/entornos.
Si quieres ver algunos ejemplos sencillos y en funcionamiento, echa un vistazo a estos:
El comerciante de ensayos que vende capítulos sueltos de un libro.
La página de donaciones que acepta donaciones para proyectos de software y da recibos de donaciones.
El WooCommerce plugin que es una integración completa en una tienda Web incluyendo el proceso de negocio de reembolso.
3.1.1.2. Arquitectura general#
La pila de software Taler para un comerciante consta de los siguientes componentes principales:
Un frontend que interactúa con el navegador del cliente. La interfaz permite al cliente crear una cesta de la compra y realizar un pedido. Tras el pago, activa la lógica comercial correspondiente para satisfacer el pedido. Este componente no se incluye con Taler, sino que se supone que existe en el comerciante. Este tutorial describe cómo desarrollar un frontend Taler.
Un backend de pago específico de Taler que facilita al frontend el procesamiento de transacciones financieras con Taler. Para este tutorial, utilizará un backend sandbox público. Para el uso en producción, debe configurar su propio backend o pedir a otra persona que lo haga por usted.
La siguiente imagen ilustra las diversas interacciones de estos componentes clave:

El backend proporciona el soporte de protocolo criptográfico, almacena la información financiera específica de Taler y se comunica con el intercambio GNU Taler a través de Internet. El frontend accede al backend a través de una API RESTful. Como resultado, el frontend nunca tiene que comunicarse directamente con el intercambio, y tampoco trata con datos sensibles. En concreto, las claves de firma del comerciante y la información de la cuenta bancaria se encapsulan en el backend Taler.
Algunas funcionalidades del backend (la «interfaz pública») se exponen directamente al navegador del cliente. En la API HTTP, todos los puntos finales privados (para el Backoffice) llevan el prefijo /private/
. Este tutorial se centra en los puntos finales /private/
. La interfaz pública es utilizada directamente por el monedero y no es relevante para el comerciante (aparte de que la API debe estar expuesta).
3.1.1.3. Sandbox público y autenticación#
La forma en que el frontend se autentifica en el backend Taler depende de la configuración. Consulte el Manual del operador del backend Taler.
El backend de sandbox público https://backend.demo.taler.net/instances/sandbox/ utiliza una clave API en la cabecera Authorization
. El valor de esta cabecera debe ser Bearer secret-token:sandbox
para el backend sandbox público.
>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
... headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>
Si se devuelve un código de estado HTTP distinto de 200, algo ha ido mal. Debe averiguar cuál es el problema antes de continuar con este tutorial.
El backend sandbox https://backend.demo.taler.net/instances/sandbox/ utiliza KUDOS
como moneda imaginaria. Las monedas denominadas en KUDOS
pueden retirarse de https://bank.demo.taler.net/.
3.1.1.4. Instancias comerciales#
Un único servidor Taler merchant backend puede ser utilizado por múltiples comerciantes que son entidades de negocio separadas. A cada una de estas entidades comerciales se le asigna una instancia de comerciante que se identifica mediante un id de instancia alfanumérico. Si se omite la instancia, se asume el id de instancia admin
.
Las siguientes instancias comerciales están configuradas en https://backend.demo.taler.net/:
GNUnet
(El proyecto GNUnet), accesible en https://backend.demo.taler.net/instances/gnunet/FSF
(The Free Software Foundation), accesible en https://backend.demo.taler.net/instances/fsf/Tor
(The Tor Project), accesible en https://backend.demo.taler.net/instances/tor/admin
(Kudos Inc.), accesible en https://backend.demo.taler.net/sandbox
(para pruebas.), accesible en https://backend.demo.taler.net/instances/sandbox/
Nota
Se trata de comerciantes ficticios utilizados para nuestras demostradoras y no están afiliados ni aprobados oficialmente por los respectivos proyectos.
Todos los puntos finales de las instancias ofrecen la misma API. Por lo tanto, la instancia que se va a utilizar simplemente se incluye en la URL base del backend del comerciante.
3.1.1.5. Tutoriales en vídeo#
Esta página contiene toda la documentación del videotutorial de introducción a la API comercial Taler.
3.1.1.5.1. Vídeo#
3.1.1.5.2. Requisitos#
Necesario para esta serie de tutoriales:
- Un backend comercial TalerPor comodidad, le recomendamos que utilice https://backend.demo.taler.net/instances/sandbox/.
- Una instancia de cartera TalerLas instrucciones de configuración están disponibles en https://wallet.taler.net, aunque no son necesarias para este tutorial.
- Un software de gestión de API REST o conocimientos de programación pertinentesEn esta serie de vídeos, vamos a utilizar el software gratuito Insomnia, disponible para su descarga en https://insomnia.rest.Como introducción, este video mostrará cómo exportar código de trabajo de sus consultas preparadas en Insomnia en Python (o cualquier lenguaje soportado) y ejecutarlas, pero esto no se demostrará de nuevo en los próximos tutoriales.
3.1.1.5.3. Aviso de backend de demostración#
Para este tutorial se recomienda encarecidamente utilizar el servicio de demostración en línea para comerciantes Taler https://backend.demo.taler.net/instances/sandbox/.
La clave de acceso es: caja de arena.
3.1.1.5.4. Información sobre la ficha secreta#
El token secreto cumple con el documento RFC 8959. Puede obtener más información aquí: https://datatracker.ietf.org/doc/html/rfc8959. Ten en cuenta que se trata de un token de portador, y que tu cabecera de authoirización debe especificarlo.
La cabecera de autorización debe tener este aspecto:Autorización: Portador secret-token:<clave de acceso>
3.1.1.5.5. Más tutoriales#
Para ver tutoriales adicionales, puede navegar por este sitio o dirigirse a https://docs.taler.net para obtener la documentación más reciente sobre los servicios Taler.