3.1.7. Sessiegebonden betalingen#
Soms is het niet voldoende om te controleren of een bestelling is betaald. Als je bijvoorbeeld toegang tot online media verkoopt, wil de uitgever dat elke klant voor precies hetzelfde product betaalt. Taler ondersteunt dit model door de handelaar toe te staan om te controleren of het “betalingsbewijs” beschikbaar is op het huidige apparaat van de gebruiker. Dit voorkomt dat gebruikers gemakkelijk mediatoegang kunnen delen door een link naar de fulfillmentpagina door te sturen. Natuurlijk zouden geavanceerde gebruikers ook betalingsbewijzen kunnen delen, maar dit is niet zo eenvoudig als het delen van een link, en in dit geval is de kans groter dat ze gewoon de media direct delen.
Om deze functie te gebruiken, moet de verkoper eerst de huidige browser van de gebruiker een kortstondige session_id
toewijzen, meestal via een sessiecookie. Bij het uitvoeren of opnieuw uitvoeren van een betaling ontvangt de portemonnee een extra handtekening (session_sig
). Deze handtekening bevestigt dat de portemonnee een betalingsbewijs heeft getoond voor de betreffende bestelling in de huidige sessie.
Sessiegebonden betalingen worden geactiveerd door de session_id
parameter door te geven aan het /check-payment
eindpunt. De portemonnee zal dan doorsturen naar de fulfillment pagina, maar een extra session_sig
parameter toevoegen. De frontend kan /check-payment
bevragen met zowel de session_id
als de session_sig
om te controleren of de handtekening correct is.
De laatste sessie-ID die met succes is gebruikt om te bewijzen dat het betalingsbewijs in de portemonnee van de gebruiker zit, is ook beschikbaar als last_session_id
in het antwoord op /check-payment
.