3.1.5. Visszavásárlás észlelése és teljesítési URL-ek#
A Taler megrendeléseknek és szerződéseknek tartalmazniuk kell egy fulfillment_url vagy egy fulfillment_message elemet, amelyeket a tárca a szerződés kifizetése után használ. Ez a bemutató elmagyarázza, hogyan kell ezeket az értékeket megfelelően beállítani.
3.1.5.1. Teljesítési üzenet#
Ez a mező egyszerűen egy üzenet, amelyet a Taler pénztárca megjelenít a felhasználónak, miután a felhasználó befejezte a vásárlást. Bármilyen UTF-8 szövegre beállítható, és a kereskedő barátságos záróüzeneteként kell használni az üzleti tranzakció végén.
Megjegyzés
A biciklitárcák a vásárlás előtt megtanulják a szöveget, így a felhasználók a tényleges vásárlás előtt megkaphatják a teljesítési üzenetet. Ennek eredményeképpen nem tartalmazhat semmilyen tényleges hitelesítő adatot vagy információt, amelyet a felhasználó a szerződéssel vásárolhat.
A teljesítési üzeneteket akkor használják, ha a kereskedő nem rendelkezik teljesítési URL-címmel, ahová a felhasználót átirányíthatná.
3.1.5.2. fulfillment_url#
A szerződések tartalmazhatnak fulfillment_url címet a fulfillment_message helyett. A fulfillment_url-nek egy weboldalra kell utalnia (a http:// vagy https:// kezdetű), és a felhasználót a vásárlás befejezése után azonnal átirányítják oda, és esetleg később a pénztárca tranzakciótörténetében a vásárlás részletei párbeszédpanelből.
A teljesítési URL-ek egy második célt is szolgálnak, mégpedig azt, hogy visszavásárlások felderítésére is használják őket. Ezért ügyelni kell a teljesítési URL-ek helyes használatára. A két releváns forgatókönyvet és azok motivációját a következő két szakaszban ismertetjük.
3.1.5.3. Visszavásárlás észlelése és teljesítési URL-ek#
A digitális cikkekhez való hozzáférést értékesítő kereskedők számára problémát jelenthet, hogy a vásárló fizetett egy cikkért egy eszközön, de aztán egy másik eszközön szeretné elolvasni, esetleg olyan eszközön, amelyen nincs is telepítve Taler pénztárca.
Természetesen ezen a ponton a vásárlót először még mindig arra kérnék, hogy fizessen újra a cikkért. Ha az ügyfél ezután megnyitja a taler:// linket abban a pénztárcában, amely korábban fizetett a cikkért (például a QR-kód beolvasásával az asztali számítógépen az Android alkalmazással), a pénztárca igényt tart a szerződésre, felismeri, hogy a teljesítési URL azonos azzal, amelyért korábban már fizetett, és újravásárlási átirányítást kezdeményez: Itt a tárca kapcsolatba lép a kereskedővel, és újrajátssza a korábbi fizetést, csak ezúttal a böngésző (aktuális) munkamenet-azonosítóját használja (a munkamenet-azonosítót a QR-kódból tanulja meg).
A kereskedői háttértár ezután frissíti a meglévő megrendelés munkamenet-azonosítóját a böngésző aktuális munkamenet-azonosítójára. Amikor az „új” nem fizetett megrendelés fizetési státuszát ellenőrzik (vagy már a hosszú lekérdezés során), a backend észleli, hogy a böngésző session ID-je és teljesítési URL-je esetében van egy meglévő fizetett szerződés. Ezután utasítja a böngészőt, hogy azonnal irányítsa át a teljesítési URL-re, ahol a már kifizetett cikk elérhető.
Ezért kulcsfontosságú, hogy a kereskedők következetesen ugyanazt a teljesítési URL-címet használják ugyanazon digitális termékhez, ha az újravásárlás észlelése kívánatos.
Megjegyzés
A munkamenet-azonosító másik eszközre történő átváltásához a fizetést végző eredeti pénztárca bevonása szükséges, ami ésszerűen korlátozza a digitális vásárlások széles körű megosztásának lehetőségét.
3.1.5.4. Ismételt vásárlások engedélyezése#
Annak érdekében, hogy ez a mechanizmus a terveknek megfelelően működjön, a kereskedőknek ügyelniük kell arra, hogy ne használják ugyanazt a teljesítési URL-címet különböző termékekhez vagy olyan fizikai termékekhez, amelyek esetében a vásárlók várhatóan többször is megvásárolják a terméket. Hasonlóképpen alapvető fontosságú, hogy a kereskedők következetesen ugyanazt a teljesítési URL-t használják ugyanazon digitális termékhez, ahol az ismételt vásárlás észlelése kívánatos.
Az egyedi teljesítési URL létrehozásának kényelmes módja, ha a rendelés azonosítóját beágyazza a teljesítési URL-be. Annak érdekében, hogy a rendelés azonosítóját akkor is használhassa a teljesítési URL-ben, ha a order_id mezőt a kereskedő nem állítja be az új rendelés POSTolásakor (és így a tényleges rendelés azonosítóját a kereskedő backendje fogja kiválasztani), használhatja a ${ORDER_ID} helyőrző szöveget a fulfillment_url-ben, amikor azt a kereskedő backendjére küldi. A kereskedői backend ekkor azonnal helyettesíti az URL-ben a ${ORDER_ID}-t a tényleges rendelésazonosítóval (mielőtt a szerződési feltételeket helyben tárolná).