3.1.7. Платежи, связанные с сеансом#
Иногда проверки того, оплачен ли заказ, недостаточно. Например, при продаже доступа к онлайн-медиа издатель может захотеть, чтобы каждый покупатель платил именно за один и тот же продукт. Taler поддерживает эту модель, позволяя продавцу проверять, имеется ли «квитанция об оплате» на текущем устройстве пользователя. Это не позволяет пользователям легко делиться доступом к медиа, передавая ссылку на страницу выполнения заказа. Конечно, искушенные пользователи могут поделиться и платежными квитанциями, но это не так просто, как поделиться ссылкой, и в этом случае они скорее всего просто поделятся медиа напрямую.
Чтобы использовать эту функцию, торговец должен сначала присвоить текущему браузеру пользователя эфемерный session_id
, обычно через сессионный cookie. При выполнении или повторном воспроизведении платежа кошелек получит дополнительную подпись (session_sig
). Эта подпись удостоверяет, что кошелек показал платежную квитанцию для соответствующего заказа в текущей сессии.
Платежи с привязкой к сессии запускаются путем передачи параметра session_id` в конечную точку ``/check-payment
. После этого кошелек будет перенаправлен на страницу выполнения платежа, но с дополнительным параметром session_sig
. Фронтенд может запросить /check-payment
как с session_id
, так и с ession_sig
, чтобы убедиться в правильности подписи.
Идентификатор последней сессии, который был успешно использован для подтверждения того, что платежная квитанция находится в кошельке пользователя, также доступен как last_session_id
в ответе на /check-payment
.