Płatności związane z sesją

3.1.7. Płatności związane z sesją#

Czasami sprawdzenie, czy zamówienie zostało opłacone, nie jest wystarczające. Na przykład, sprzedając dostęp do mediów online, wydawca może chcieć otrzymać zapłatę za dokładnie ten sam produkt od każdego klienta. Taler obsługuje ten model, umożliwiając mechantowi sprawdzenie, czy „potwierdzenie płatności” jest dostępne na bieżącym urządzeniu użytkownika. Uniemożliwia to użytkownikom łatwe dzielenie się dostępem do mediów poprzez przesyłanie linku do strony realizacji. Oczywiście zaawansowani użytkownicy mogą również udostępniać pokwitowania płatności, ale nie jest to tak łatwe, jak udostępnianie linku, a w tym przypadku bardziej prawdopodobne jest, że po prostu udostępnią media bezpośrednio.

Aby skorzystać z tej funkcji, sprzedawca musi najpierw przypisać bieżącej przeglądarce użytkownika efemeryczny ession_id, zwykle za pomocą pliku cookie sesji. Podczas wykonywania lub ponownego odtwarzania płatności, portfel otrzyma dodatkowy podpis (session_sig). Podpis ten poświadcza, że portfel pokazał potwierdzenie płatności dla danego zamówienia w bieżącej sesji.

Płatności związane z sesją są uruchamiane poprzez przekazanie parametru session_id do punktu końcowego /check-payment. Portfel przekieruje następnie do strony realizacji, ale będzie zawierał dodatkowy parametr session_sig. Frontend może odpytać /check-payment zarówno z ession_id jak i session_sig by zweryfikować poprawność podpisu.

Ostatni identyfikator sesji, który został pomyślnie użyty do udowodnienia, że potwierdzenie płatności znajduje się w portfelu użytkownika, jest również dostępny jako last_session_id w odpowiedzi na /check-payment.