3.1.7. Sitzungsgebundene Zahlungen#
Manchmal reicht es nicht aus, nur zu prüfen, ob eine Bestellung bezahlt worden ist. Beim Verkauf von Online-Medien möchte der Herausgeber beispielsweise von jedem Kunden genau dasselbe Produkt bezahlt bekommen. Taler unterstützt dieses Modell, indem es dem Anbieter ermöglicht, zu prüfen, ob der „Zahlungsbeleg“ auf dem aktuellen Gerät des Nutzers verfügbar ist. Dadurch wird verhindert, dass Benutzer den Medienzugang einfach durch Übermittlung eines Links zur Erfüllungsseite freigeben können. Natürlich könnten anspruchsvolle Benutzer auch Zahlungsbelege weitergeben, aber das ist nicht so einfach wie die Weitergabe eines Links, und in diesem Fall ist es wahrscheinlicher, dass sie einfach die Medien direkt weitergeben.
Um diese Funktion zu nutzen, muss der Händler dem aktuellen Browser des Nutzers zunächst eine ephemere „Session_id“ zuweisen, in der Regel über ein Session-Cookie. Bei der Ausführung oder Wiederholung einer Zahlung erhält die Wallet eine zusätzliche Signatur (session_sig
). Diese Signatur bescheinigt, dass die Wallet in der aktuellen Sitzung einen Zahlungseingang für die jeweilige Bestellung gezeigt hat.
Sitzungsgebundene Zahlungen werden durch die Übergabe des Parameters „session_id“ an den Endpunkt „check-payment“ ausgelöst. Die Wallet leitet dann auf die Fulfillment-Seite weiter, fügt aber einen zusätzlichen Parameter „session_sig“ hinzu. Das Frontend kann /check-payment
sowohl mit der session_id
als auch mit der session_sig
abfragen, um zu überprüfen, ob die Signatur korrekt ist.
Die letzte Sitzungs-ID, die erfolgreich verwendet wurde, um zu beweisen, dass der Zahlungsbeleg in der Wallet des Benutzers ist, ist auch als last_session_id
in der Antwort auf /check-payment
verfügbar.