3.1.7. Сесійні платежі#
Іноді недостатньо просто перевірити, чи оплачено замовлення. Наприклад, продаючи доступ до онлайн-медіа, видавець може захотіти, щоб кожен покупець заплатив за один і той самий продукт. Taler підтримує цю модель, дозволяючи продавцю перевірити, чи доступна «квитанція про оплату» на поточному пристрої користувача. Це заважає користувачам легко ділитися доступом до медіа, передаючи посилання на сторінку виконання замовлення. Звичайно, досвідчені користувачі можуть ділитися квитанціями про оплату, але це не так просто, як поділитися посиланням, і в цьому випадку вони, швидше за все, просто поділяться медіа безпосередньо.
Щоб скористатися цією функцією, продавець повинен спочатку присвоїти поточному браузеру користувача ефемерний «ідентифікатор сеансу», як правило, за допомогою сесійного файлу cookie. При виконанні або повторному відтворенні платежу гаманець отримує додатковий підпис (сесія_sig
). Цей підпис засвідчує, що гаманець показав квитанцію про оплату відповідного замовлення в поточній сесії.
Прив’язані до сесії платежі запускаються шляхом передачі параметра session_id
кінцевій точці /check-payment
. Після цього гаманець буде перенаправлений на сторінку виконання, але з додатковим параметром session_sig
. Фронтенд може запитувати /check-payment
з обома параметрами `` session_id`` і `` session_sig``, щоб перевірити правильність підпису.
Ідентифікатор останньої сесії, який було успішно використано для підтвердження того, що квитанція про оплату знаходиться в гаманці користувача, також доступний як last_session_id
у відповіді на запит /check-payment
.