3.1.1. Aperçu de l’instance#

3.1.1.1. A propos de ce tutoriel#

Ce tutoriel explique comment traiter les paiements en utilisant le backend marchand de GNU Taler. Les destinataires de ce tutoriel sont les développeurs de commerçants (tels que les boutiques en ligne) qui travaillent à l’intégration de GNU Taler avec le Frontend orienté vers le client et le Backoffice orienté vers le personnel.

Ce chapitre explique quelques concepts de base. Dans le deuxième chapitre, vous apprendrez à effectuer des paiements de base.

Cette version du tutoriel contient des exemples pour Python3. Elle utilise la bibliothèque requests pour les requêtes HTTP. Des versions pour d’autres langages/environnements sont également disponibles.

Si vous voulez voir des exemples simples et concrets, jetez un coup d’œil à ceux qui suivent :

3.1.1.2. Aperçu de l’architecture#

La pile logicielle Taler pour un commerçant se compose des principaux éléments suivants :

  • Une interface qui interagit avec le navigateur du client. Il permet au client de constituer un panier d’achat et de passer une commande. Au moment du paiement, il déclenche la logique commerciale correspondante pour satisfaire la commande. Ce composant n’est pas inclus dans Taler, mais il est supposé exister chez le commerçant. Ce tutoriel décrit comment développer un frontend Taler.

  • Un backend de paiement spécifique à Taler qui facilite le traitement des transactions financières par le frontend avec Taler. Pour ce tutoriel, vous utiliserez un backend public. Pour une utilisation en production, vous devez soit configurer votre propre backend, soit demander à une autre personne de le faire pour vous.

L’image suivante illustre les différentes interactions de ces composants clés :

../../_images/arch-api.png

Le backend fournit le support du protocole cryptographique, stocke les informations financières spécifiques à Taler et communique avec l’échange GNU Taler sur Internet. Le frontend accède au backend via une API RESTful. Par conséquent, le frontend n’a jamais à communiquer directement avec l’échange et ne traite pas non plus de données sensibles. En particulier, les clés de signature du commerçant et les informations relatives à son compte bancaire sont encapsulées dans le backend Taler.

Certaines fonctionnalités du backend (l“« interface publique ») sont exposées directement au navigateur du client. Dans l’API HTTP, tous les points de terminaison privés (pour le Backoffice) sont préfixés par /private/. Ce tutoriel se concentre sur les points d’extrémité /private/. L’interface publique est directement utilisée par le portefeuille et n’est pas pertinente pour le marchand (à part le fait que l’API doit être exposée).

3.1.1.3. Backend et authentification de l’environnement de test public#

La façon dont le frontend s’authentifie auprès du backend Taler dépend de la configuration. Voir Manuel de l’opérateur du backend marchand.

Le backend public sandbox https://backend.demo.taler.net/instances/sandbox/ utilise une clé API dans l’en-tête Authorization. La valeur de cet en-tête doit être Bearer secret-token:sandbox pour le backend public sandbox.

>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
...              headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>

Si un code d’état HTTP autre que 200 est renvoyé, c’est que quelque chose n’a pas fonctionné. Vous devez déterminer quel est le problème avant de poursuivre ce tutoriel.

Le backend sandbox https://backend.demo.taler.net/instances/sandbox/ utilise le KUDOS comme monnaie imaginaire. Des pièces libellées en KUDOS peuvent être retirées de https://bank.demo.taler.net/.

3.1.1.4. Merchant Instances#

Un seul serveur de backend marchand Taler peut être utilisé par plusieurs marchands qui sont des entités commerciales distinctes. Chacune de ces entités commerciales distinctes se voit attribuer une instance marchand qui est identifiée par un identifiant d’instance alphanumérique. Si l’instance est omise, l’identifiant d’instance admin est supposé.

Les instances marchandes suivantes sont configurées sur https://backend.demo.taler.net/ :

Note

Il s’agit de marchands fictifs utilisés pour nos démonstrateurs et qui ne sont ni affiliés ni officiellement approuvés par les projets respectifs.

Tous les points d’extrémité des instances offrent la même API. Ainsi, l’instance à utiliser est simplement incluse dans l’URL de base du backend du commerçant.

3.1.1.5. Tutoriels vidéo#

Cette page contient toute la documentation du tutoriel vidéo présentant l’API marchande de Taler.

3.1.1.5.1. Vidéo#

3.1.1.5.2. Exigences#

Nécessaire pour cette série de tutoriels :

  • Un backend marchand Taler
    Pour plus de commodité, nous vous recommandons d’utiliser https://backend.demo.taler.net/instances/sandbox/.
  • Une instance de portefeuille Taler
    Les instructions d’installation sont disponibles sur https://wallet.taler.net, mais ne sont pas nécessaires pour ce tutoriel.
  • Un logiciel de gestion d’API REST ou des compétences en programmation pertinentes
    Dans cette série de vidéos, nous allons utiliser le logiciel gratuit Insomnia, disponible en téléchargement sur https://insomnia.rest.
    En guise d’introduction, cette vidéo montre comment exporter le code de travail de vos requêtes préparées dans Insomnia en Python (ou tout autre langage pris en charge) et les exécuter, mais cela ne sera plus démontré dans les prochains tutoriels.

3.1.1.5.3. Démonstration de l’avis du backend#

L’utilisation du service de démonstration en ligne de Taler https://backend.demo.taler.net/instances/sandbox/ est fortement recommandée pour ce tutoriel.

La clé d’accès est : sandbox.

3.1.1.5.4. Informations sur le jeton secret#

Le jeton secret est conforme au document RFC 8959. Vous pouvez en savoir plus à ce sujet à l’adresse suivante : https://datatracker.ietf.org/doc/html/rfc8959. Gardez à l’esprit qu’il s’agit d’un jeton porteur, et que votre en-tête d’authentification doit le spécifier.

Votre en-tête d’autorisation doit ressembler à ceci :
Autorisation : Bearer secret-token:<clef d’accès>

3.1.1.5.5. Plus de tutoriels#

Pour consulter d’autres tutoriels, vous pouvez parcourir ce site ou vous rendre sur https://docs.taler.net pour obtenir la documentation la plus récente sur les services Taler.