Munkamenethez kötött kifizetések

3.1.7. Munkamenethez kötött kifizetések#

Néha nem elég ellenőrizni, hogy a megrendelés kifizetésre került-e. Például az online médiához való hozzáférés értékesítése esetén a kiadó azt szeretné, ha minden egyes vásárló pontosan ugyanazt a terméket fizetné ki. A Taler támogatja ezt a modellt azzal, hogy a mechant ellenőrizheti, hogy a „fizetési bizonylat” elérhető-e a felhasználó aktuális eszközén. Ez megakadályozza, hogy a felhasználók egyszerűen megosszák a médiához való hozzáférést a teljesítési oldalra mutató link továbbításával. Természetesen a kifinomult felhasználók a fizetési bizonylatokat is megoszthatnák, de ez nem olyan egyszerű, mint egy link megosztása, és ebben az esetben valószínűbb, hogy csak közvetlenül a médiát osztják meg.

E funkció használatához a kereskedőnek először a felhasználó aktuális böngészőjéhez kell rendelnie egy efemer „session_id”-t, általában egy munkamenet-süti segítségével. A fizetés végrehajtásakor vagy újrajátszásakor a pénztárca kap egy további aláírást (session_sig). Ez az aláírás igazolja, hogy a pénztárca az aktuális munkamenetben az adott megbízásról szóló fizetési bizonylatot mutatott.

A munkamenethez kötött fizetéseket a „session_id” paraméter átadásával lehet elindítani a „check-payment” végponton. A pénztárca ezután átirányít a teljesítési oldalra, de egy további session_sig paramétert is tartalmaz. A frontend lekérdezheti a /check-payment-t mind a session_id, mind a session_sig értékkel, hogy ellenőrizze az aláírás helyességét.

Az utolsó munkamenet azonosítója, amelyet sikeresen használtak annak bizonyítására, hogy a fizetési bizonylat a felhasználó pénztárcájában van, szintén elérhető last_session_id néven a /check-payment válaszban.