3.1.7. Paiements liés à une session#
Parfois, il ne suffit pas de vérifier si une commande a été payée. Par exemple, lors de la vente d’un accès à des médias en ligne, l’éditeur peut vouloir être payé pour exactement le même produit par chaque client. Taler prend en charge ce modèle en permettant au marchand de vérifier si le « reçu de paiement » est disponible sur l’appareil actuel de l’utilisateur. Cela empêche les utilisateurs de partager facilement l’accès aux supports en transmettant un lien vers la page de paiement. Bien sûr, les utilisateurs avertis pourraient également partager les reçus de paiement, mais ce n’est pas aussi facile que de partager un lien et, dans ce cas, il est plus probable qu’ils partagent directement les médias.
Pour utiliser cette fonctionnalité, le marchand doit d’abord attribuer au navigateur actuel de l’utilisateur un sessionid
éphémère, généralement par le biais d’un cookie de session. Lors de l’exécution ou de la relecture d’un paiement, le portefeuille recevra une signature supplémentaire (session_sig
). Cette signature certifie que le portefeuille a montré un reçu de paiement pour la commande concernée dans la session en cours.
Les paiements liés à une session sont déclenchés en passant le paramètre session_id
au point de terminaison check-payment
. Le portefeuille redirigera alors vers la page de paiement, mais inclura un paramètre supplémentaire session_sig
. Le frontend peut interroger /check-payment
avec les deux paramètres session_id
et session_sig
pour vérifier que la signature est correcte.
Le dernier identifiant de session qui a été utilisé avec succès pour prouver que le reçu de paiement se trouve dans le portefeuille de l’utilisateur est également disponible en tant que last_session_id
dans la réponse à /check-payment
.