Platby vázané na relaci

3.1.7. Platby vázané na relaci#

Někdy nestačí jen zkontrolovat, zda byla objednávka zaplacena. Například při prodeji přístupu k online médiím může vydavatel chtít, aby každý zákazník zaplatil za přesně stejný produkt. Taler tento model podporuje tím, že umožňuje mechantovi zkontrolovat, zda je „doklad o zaplacení“ k dispozici v aktuálním zařízení uživatele. Tím se zabrání snadnému sdílení přístupu k médiím ze strany uživatelů přenosem odkazu na stránku s plněním. Sofistikovaní uživatelé by samozřejmě mohli sdílet i potvrzení o zaplacení, ale to není tak snadné jako sdílení odkazu a v tomto případě je pravděpodobnější, že budou sdílet pouze média přímo.

Pro použití této funkce musí obchodník nejprve přiřadit aktuálnímu prohlížeči uživatele efemérní session_id, obvykle prostřednictvím souboru cookie relace. Při provádění nebo opakovaném přehrávání platby obdrží peněženka dodatečný podpis (session_sig). Tento podpis potvrzuje, že peněženka v aktuální relaci zobrazila potvrzení o platbě za příslušný příkaz.

Platby vázané na relaci se spouštějí předáním parametru session_id koncovému bodu /check-payment. Peněženka pak bude přesměrována na stránku s plněním, ale bude obsahovat další parametr session_sig. Frontend se může dotazovat na /check-payment jak s parametrem session_id, tak s parametrem session_sig, aby ověřil, zda je podpis správný.

Poslední ID relace, které bylo úspěšně použito k prokázání, že je doklad o platbě v peněžence uživatele, je také k dispozici jako last_session_id v odpovědi na /check-payment.