Платежи, связанные с сеансом

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.