3.1.4. Remboursement des commandes#

Cette page contient toute la documentation du tutoriel vidéo expliquant le processus de remboursement des commandes et les différents délais de remboursement.

3.1.4.1. Vidéo#

3.1.4.2. Information#

Si vous n’êtes pas familier avec le processus de création de commandes, vous pouvez regarder le Taler merchant creating orders tutorial.

3.1.4.3. Exigences#

Nécessaire pour cette série de tutoriels :

  • Un backend marchand Taler
    Si vous avez besoin d’aide pour utiliser le backend marchand pour la première fois, vous pouvez regarder le Taler merchant introduction tutorial.
  • Une instance de portefeuille Taler
    Les instructions d’installation sont disponibles sur le site https://wallet.taler.net.
  • 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.

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

Vous pouvez utiliser votre propre service de backend marchand ou le service de démonstration en ligne à l’adresse https://backend.demo.taler.net/instances/sandbox/ pour ce tutoriel.

3.1.4.5. Plus d’informations sur les remboursements des commandes des commerçants#

Dans GNU Taler, un remboursement est un moyen d“« annuler » un paiement. Il doit être autorisé par le commerçant. Les remboursements peuvent correspondre à n’importe quelle fraction du montant original payé, mais ils ne peuvent pas dépasser le paiement original. Les remboursements sont limités dans le temps et ne peuvent avoir lieu que pendant que la bourse détient les fonds d’un paiement particulier en dépôt fiduciaire. Le temps pendant lequel un remboursement est possible peut être contrôlé en définissant le refund_deadline dans une commande. La valeur par défaut de ce délai de remboursement est spécifiée dans la configuration du backend du marchand.

Le frontend peut demander au backend du commerçant d’autoriser un remboursement en envoyant un POST au point de terminaison private/orders/$ORDER_ID/refund.

L’objet JSON de la demande de remboursement ne comporte que deux champs :

  • refund : Montant à rembourser. Si un remboursement précédent a été autorisé pour la même commande, le nouveau montant doit être plus élevé, sinon l’opération n’a pas d’effet. La valeur indique le montant total à rembourser, pas une augmentation du remboursement.

  • reason : Justification lisible par l’homme du remboursement. La raison n’est utilisée que par le Back Office et n’est pas exposée au client.

Si la requête est réussie (indiquée par le code de statut HTTP 200), la réponse inclut un taler_refund_uri. Le frontend doit rediriger le navigateur du client vers cette URL pour permettre au remboursement d’être traité par le portefeuille.

Cet extrait de code illustre l’octroi d’un remboursement :

>>> import requests
>>> refund_req = dict(refund="KUDOS:10",
...                   reason="Customer did not like the product")
>>> requests.post("https://backend.demo.taler.net/instances/sandbox/private/orders/"
...               + order_id + "/refund", json=refund_req,
...               headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>

Note

Après avoir accordé un remboursement, le point de terminaison public https://example.com/orders/$ORDER_ID changera son interaction avec le portefeuille, passant d’une demande de paiement à une offre de remboursement. Ainsi, les frontends peuvent à nouveau rediriger les navigateurs vers ce point d’accès. Cependant, pour ce faire, un champ h_contract doit être ajouté (?h_contract=$H_CONTRACT) car le point de terminaison public en a besoin pour authentifier le client. La valeur requise $H_CONTRACT est retournée dans la réponse de remboursement sous le champ h_contract.

3.1.4.6. 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.