3.1.4. Bestellingen terugbetalen#

Deze pagina bevat alle documentatie voor de instructievideo waarin het proces van het terugbetalen van bestellingen en de verschillende deadlines voor terugbetalingen worden uitgelegd.

3.1.4.1. Video#

3.1.4.2. Informatie#

Als u niet bekend bent met het maken van orders, kunt u de Taler-handelaar maakt orders tutorial bekijken.

3.1.4.3. Vereisten#

Vereist voor deze tutorialserie:

  • Een Taler merchant backend
    Als je hulp nodig hebt bij het eerste gebruik van het merchant backend, kun je de Taler merchant introductie tutorial bekijken.
  • Een Taler portemonnee instantie
    Installatie-instructies zijn beschikbaar op https://wallet.taler.net.
  • Software voor REST API-beheer of relevante programmeervaardigheden
    In deze videoserie gebruiken we de gratis software Insomnia, te downloaden op https://insomnia.rest.

3.1.4.4. Demonstratie backend kennisgeving#

Je kunt voor deze tutorial gebruikmaken van je eigen merchant backend service of de online demonstratieservice op https://backend.demo.taler.net/instances/sandbox/.

3.1.4.5. Meer opmerkingen over terugbetalingen bij Merchant-bestellingen#

Een terugbetaling in GNU Taler is een manier om een betaling “ongedaan te maken”. Het moet worden goedgekeurd door de verkoper. Restituties kunnen voor elke fractie van het oorspronkelijk betaalde bedrag zijn, maar ze kunnen niet hoger zijn dan de oorspronkelijke betaling. Terugbetalingen zijn beperkt in de tijd en kunnen alleen plaatsvinden terwijl de exchange het geld voor een bepaalde betaling in escrow houdt. De tijd waarin een terugbetaling mogelijk is, kan worden geregeld door de refund_deadline in een order in te stellen. De standaardwaarde voor deze terugbetalingstermijn wordt gespecificeerd in de configuratie van de backend van de merchant.

De frontend kan de merchant backend opdracht geven om een restitutie te autoriseren door POST naar het /private/orders/$ORDER_ID/refund eindpunt te sturen.

Het refund request JSON object heeft slechts twee velden:

  • terugbetaling: Bedrag dat moet worden terugbetaald. Als voor dezelfde bestelling al eerder een terugbetaling is gedaan, moet het nieuwe bedrag hoger zijn, anders heeft de bewerking geen effect. De waarde geeft het totale terug te betalen bedrag aan, niet een verhoging van de terugbetaling.

  • reden: Menselijk leesbare rechtvaardiging voor de terugbetaling. De reden wordt alleen gebruikt door de Back Office en is niet zichtbaar voor de klant.

Als het verzoek succesvol is (aangegeven met HTTP-statuscode 200), bevat het antwoord een taler_refund_uri. De frontend moet de browser van de klant omleiden naar die URL zodat de terugbetaling kan worden verwerkt door de portemonnee.

Dit stukje code illustreert het geven van een restitutie:

>>> 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]>

Notitie

Na het toekennen van een restitutie zal het publieke https://example.com/orders/$ORDER_ID eindpunt zijn portemonnee-interactie veranderen van het vragen om betaling naar het aanbieden van een restitutie. Frontends kunnen browsers dus weer omleiden naar dit eindpunt. Hiervoor moet echter een h_contract veld worden toegevoegd (?h_contract=$H_CONTRACT) omdat het publieke eindpunt dit nodig heeft om de cliënt te authenticeren. De vereiste $H_CONTRACT waarde wordt geretourneerd in het restitutie antwoord onder het h_contract veld.

3.1.4.6. Meer tutorials#

Om aanvullende tutorials te bekijken, kun je op deze site kijken of naar https://docs.taler.net gaan voor de nieuwste documentatie over de Taler services.