Platby viazané na reláciu

3.1.7. Platby viazané na reláciu#

Niekedy nestačí len skontrolovať, či bola objednávka zaplatená. Napríklad pri predaji prístupu k online médiám môže vydavateľ chcieť, aby každý zákazník zaplatil za presne ten istý produkt. Taler podporuje tento model tým, že umožňuje mechantovi skontrolovať, či je „potvrdenie o zaplatení“ k dispozícii na aktuálnom zariadení používateľa. Tým sa zabráni tomu, aby používatelia ľahko zdieľali prístup k médiám prenosom odkazu na stránku plnenia. Samozrejme, sofistikovaní používatelia by mohli zdieľať aj potvrdenia o zaplatení, ale to nie je také jednoduché ako zdieľanie odkazu a v tomto prípade je pravdepodobnejšie, že budú zdieľať len priamo médiá.

Ak chce obchodník použiť túto funkciu, musí najprv priradiť aktuálnemu prehliadaču používateľa efemérne session_id, zvyčajne prostredníctvom súboru cookie relácie. Pri vykonávaní alebo opätovnom prehrávaní platby dostane peňaženka dodatočný podpis (session_sig). Tento podpis potvrdzuje, že peňaženka v aktuálnej relácii zobrazila potvrdenie o platbe za príslušný príkaz.

Platby viazané na reláciu sa spúšťajú odovzdaním parametra session_id koncovému bodu /check-payment. Peňaženka potom presmeruje na stránku plnenia, ale uvedie dodatočný parameter session_sig. Frontend sa môže pýtať na /check-payment s parametrom session_id aj session_sig, aby overil, či je podpis správny.

ID poslednej relácie, ktoré bolo úspešne použité na preukázanie, že potvrdenie o platbe je v peňaženke používateľa, je tiež k dispozícii ako last_session_id v odpovedi na /check-payment.