Pagamentos vinculados à sessão

3.1.7. Pagamentos vinculados à sessão#

Por vezes, verificar se uma encomenda foi paga não é suficiente. Por exemplo, ao vender acesso a meios de comunicação em linha, o editor pode querer que cada cliente pague exatamente o mesmo produto. O Taler suporta este modelo ao permitir que o vendedor verifique se o «recibo de pagamento» está disponível no dispositivo atual do utilizador. Isto evita que os utilizadores partilhem facilmente o acesso aos meios de comunicação, transmitindo uma ligação para a página de pagamento. É claro que os utilizadores sofisticados também podem partilhar recibos de pagamento, mas não é tão fácil como partilhar uma hiperligação e, neste caso, é mais provável que partilhem apenas os suportes diretamente.

Para utilizar esta funcionalidade, o comerciante deve primeiro atribuir ao browser atual do utilizador um session_id efémero, normalmente através de um cookie de sessão. Ao executar ou reproduzir um pagamento, a carteira receberá uma assinatura adicional (session_sig). Esta assinatura certifica que a carteira apresentou um recibo de pagamento para a respectiva encomenda na sessão atual.

Os pagamentos vinculados à sessão são acionados passando o parâmetro session_id para o ponto final /check-payment. A carteira irá então redirecionar para a página de preenchimento, mas incluirá um parâmetro adicional session_sig. O frontend pode consultar /check-payment com ambos os parâmetros session_id e session_sig para verificar se a assinatura está correta.

O último ID de sessão que foi utilizado com sucesso para provar que o recibo de pagamento está na carteira do utilizador também está disponível como last_session_id na resposta a /check-payment.