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-verkoper maakt orders tutorial bekijken.
3.1.4.3. Vereisten#
Vereist voor deze tutorialserie:
- Een Taler-verkopersbackendAls je hulp nodig hebt bij het eerste gebruik van de verkopersbackend, kun je de Taler-verkoper-introductie tutorial bekijken.
- Een Taler portemonnee instantieInstallatie-instructies zijn beschikbaar op https://wallet.taler.net.
- Software voor REST API-beheer of relevante programmeervaardighedenIn 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 verkopersbackendservice of de online demonstratieservice op https://backend.demo.taler.net/instances/sandbox/.
3.1.4.5. Meer opmerkingen over terugbetalingen bij verkopersbestellingen#
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 verkoper.
De frontend kan de verkopersbackend opdracht geven om een terugbetaling te autoriseren door POSTte sturen naar het /private/orders/$ORDER_ID/refund eindpunt.
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.reason: Door mensen 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.