3.1.5. Porozumění adresám URL pro plnění#
Objednávky a smlouvy Taleru musí obsahovat buď fulfillment_url, nebo fulfillment_message, které peněženka použije po zaplacení smlouvy. Tento návod vysvětluje, jak tyto hodnoty správně nastavit.
3.1.5.1. Zpráva o plnění#
Toto pole je jednoduše zpráva, kterou peněženka Taler zobrazí uživateli po dokončení nákupu. Může být nastavena na libovolný druh textu UTF-8 a má sloužit jako přátelská závěrečná zpráva od obchodníka na konci obchodní transakce.
Poznámka
Peněženky Whe se text dozvědí ještě před provedením nákupu, takže uživatelé by mohli získat zprávu o plnění ještě před samotným nákupem. V důsledku toho by neměla obsahovat žádné skutečné pověření nebo informace, které by uživatel mohl za smlouvu koupit.
Zprávy o plnění se používají, pokud obchodník nemá adresu URL pro plnění, na kterou by mohl uživatele přesměrovat.
3.1.5.2. Adresy URL pro plnění#
Smlouvy mohou obsahovat fulfillment_url místo fulfillment_message. Adresa fulfillment_url musí odkazovat na webovou stránku (začíná na http:// nebo https://) a uživatel na ni bude přesměrován ihned po dokončení nákupu a případně i později z dialogu s podrobnostmi o nákupu v historii transakcí své peněženky.
Adresy URL pro plnění slouží k druhému účelu, a to že se používají také pro zjištění zpětného nákupu. Proto je třeba dbát na správné používání adres URL plnění. V následujících dvou částech vysvětlíme dva relevantní scénáře a jejich motivaci.
3.1.5.3. Detekce zpětného odkupu#
Možným problémem pro obchodníky prodávající přístup k digitálním článkům je, že zákazník může zaplatit za článek na jednom zařízení, ale pak si ho může chtít přečíst na jiném zařízení, případně na zařízení, které ani nemá nainstalovanou peněženku Taler.
V tomto okamžiku bude zákazník samozřejmě nejprve vyzván, aby za článek znovu zaplatil. Pokud pak zákazník otevře odkaz taler:// v peněžence, která již dříve za článek zaplatila (například naskenováním QR kódu na počítači pomocí aplikace pro Android), peněženka si smlouvu vyžádá, zjistí, že adresa URL plnění je identická s adresou, za kterou již v minulosti provedla platbu, a zahájí přesměrování nákupu: Zde peněženka kontaktuje obchodníka a zopakuje předchozí platbu, jenže tentokrát použije (aktuální) ID relace prohlížeče (ID relace se dozví z kódu QR).
Backend obchodníka pak aktualizuje ID relace existující objednávky na aktuální ID relace prohlížeče. Při kontrole stavu platby pro „novou“ nezaplacenou objednávku (nebo již v long-pollingu) backend zjistí, že pro identifikátor relace prohlížeče a adresu URL plnění existuje existující zaplacená smlouva. Poté prohlížeči řekne, aby byl okamžitě přesměrován na adresu URL plnění, kde je k dispozici již zaplacený článek.
Proto je důležité, aby obchodníci důsledně používali stejnou adresu URL pro plnění pro stejný digitální produkt, u kterého je požadováno zjištění opakovaného nákupu.
Poznámka
Změna ID relace na jiné zařízení vyžaduje zapojení původní peněženky, která platbu provedla, čímž se přiměřeně omezuje možnost širokého sdílení digitálních nákupů.
3.1.5.4. Povolení opakovaných nákupů#
Aby detekce opakovaného nákupu nezabránila zákazníkům v druhém nákupu stejné služby nebo fyzického zboží, musí obchodníci dbát na to, aby nepoužívali stejnou adresu URL plnění pro různé produkty nebo pro fyzické produkty, u nichž lze očekávat, že si zákazníci zboží koupí opakovaně.
Vhodným způsobem, jak vytvořit jedinečnou adresu URL plnění, je vložit do adresy URL plnění identifikátor objednávky. Chcete-li umožnit použití ID objednávky v adrese URL plnění i v případě, že pole order_id není obchodníkem při odesílání nové objednávky POST nastaveno (a skutečné ID objednávky tedy vybere backend obchodníka), můžete při odesílání do backendu obchodníka použít v adrese fulfillment_url zástupný text ${ORDER_ID}`. Obchodní backend pak okamžitě nahradí ``${ORDER_ID} v adrese URL skutečným ID objednávky (před lokálním persistováním smluvních podmínek).