3.1.1. Koncepčný prehľad#

3.1.1.1. O tomto tutoriáli#

Tento návod sa zaoberá spracovaním platieb pomocou obchodného backendu GNU Taler. Tento návod je určený pre vývojárov obchodníkov (napríklad webových obchodov), ktorí pracujú na integrácii GNU Taler s Frontendom pre zákazníkov a Backoffice pre zamestnancov.

Táto kapitola vysvetľuje niektoré základné pojmy. V druhej kapitole sa dozviete, ako vykonávať základné platby.

Táto verzia učebnice obsahuje príklady pre Python3. Používa knižnicu requests pre HTTP požiadavky. K dispozícii sú aj verzie pre iné jazyky/prostredia.

Ak sa chcete pozrieť na niekoľko jednoduchých príkladov, pozrite si tieto:

3.1.1.2. Prehľad architektúry#

Softvérový zásobník Taler pre obchodníka pozostáva z týchto hlavných komponentov:

  • Frontend, ktorý komunikuje s prehliadačom zákazníka. Frontend umožňuje zákazníkovi vytvoriť nákupný košík a uskutočniť objednávku. Po zaplatení spustí príslušnú obchodnú logiku na vybavenie objednávky. Táto zložka nie je súčasťou systému Taler, ale predpokladá sa, že existuje u obchodníka. Tento návod opisuje, ako vytvoriť frontend aplikácie Taler.

  • Platobný backend špecifický pre Taler, ktorý uľahčuje frontendu spracovanie finančných transakcií pomocou Taleru. V tomto návode budete používať verejný backend sandboxu. Pre produkčné použitie musíte buď nastaviť vlastný backend, alebo požiadať inú osobu, aby to urobila za vás.

Nasledujúci obrázok znázorňuje rôzne interakcie týchto kľúčových komponentov:

../../_images/arch-api.png

Backend poskytuje podporu kryptografických protokolov, ukladá finančné informácie špecifické pre Taler a komunikuje s výmenou GNU Taler cez internet. Frontend pristupuje k backendu prostredníctvom rozhrania RESTful API. Výsledkom je, že frontend nikdy nemusí priamo komunikovať s burzou a tiež nemá do činenia s citlivými údajmi. Najmä podpisové kľúče obchodníka a informácie o bankovom účte sú zapuzdrené v backende Taler.

Niektoré funkcie backendu („verejné rozhranie“) sú vystavené priamo pre prehliadač zákazníka. V rozhraní HTTP API sú všetky súkromné koncové body (pre Backoffice) označené predponou /private/. Tento návod sa zameriava na koncové body /private/. Verejné rozhranie používa priamo peňaženka a pre obchodníka nie je relevantné (okrem toho, že API musí byť vystavené).

3.1.1.3. Verejný sandbox Backend a overovanie#

Spôsob overovania frontendu voči backendu Taler závisí od konfigurácie. Pozrite si Príručku operátora backendu Merchant.

Verejný backend sandboxu https://backend.demo.taler.net/instances/sandbox/ používa kľúč API v hlavičke Authorization. Hodnota tejto hlavičky musí byť Bearer secret-token:sandbox pre verejný sandbox backend.

>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
...              headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>

Ak sa vráti iný stavový kód HTTP ako 200, niečo sa pokazilo. Pred pokračovaním v tomto návode by ste mali zistiť, v čom je problém.

Backend sandboxu https://backend.demo.taler.net/instances/sandbox/ používa ako imaginárnu menu KUDOS. Mince denominované v KUDOS je možné vybrať z https://bank.demo.taler.net/.

3.1.1.4. Inštancie obchodníkov#

Jeden backendový server obchodníka Taler môže používať viacero obchodníkov, ktorí sú samostatnými obchodnými subjektmi. Každému z týchto samostatných obchodných subjektov je pridelená inštancia obchodníka, ktorá je identifikovaná alfanumerickým identifikátorom inštancie. Ak je inštancia vynechaná, predpokladá sa id inštancie admin.

Na stránke https://backend.demo.taler.net/ sú nakonfigurované tieto inštancie obchodníkov:

Poznámka

Ide o fiktívnych obchodníkov, ktorí sa používajú pre našich demonštrantov a nie sú spojení s príslušnými projektmi ani nimi oficiálne schválení.

Všetky koncové body pre inštancie ponúkajú rovnaké rozhranie API. Preto sa v základnej adrese URL backendu obchodníka jednoducho uvedie, ktorá inštancia sa má použiť.

3.1.1.5. Videonávody#

Táto stránka obsahuje celú dokumentáciu k videonávodu, ktorý predstavuje rozhranie Taler merchant API.

3.1.1.5.1. Video#

3.1.1.5.2. Požiadavky#

Potrebné pre túto sériu výukových programov:

  • Backend obchodníka Taler
    Pre väčšie pohodlie vám odporúčame používať stránku https://backend.demo.taler.net/instances/sandbox/.
  • Príklad peňaženky Taler
    Pokyny na nastavenie sú k dispozícii na stránke https://wallet.taler.net, hoci pre tento návod nie sú potrebné.
  • Softvér na správu rozhrania API REST alebo príslušné programátorské zručnosti
    V tejto sérii videí budeme používať bezplatný softvér Insomnia, ktorý je k dispozícii na stiahnutie na adrese https://insomnia.rest.
    V tomto videu sa na úvod dozviete, ako exportovať pracovný kód z pripravených dotazov v Insomnii v jazyku Python (alebo v ľubovoľnom podporovanom jazyku) a vykonať ich, ale v ďalších tutoriáloch to už nebude ukázané.

3.1.1.5.3. Ukážka backendu#

Pri tomto návode sa dôrazne odporúča používať online demo službu obchodníka Taler https://backend.demo.taler.net/instances/sandbox/.

Prístupový kľúč je: piesoková schránka.

3.1.1.5.4. Informácie o tajnom tokene#

Tajný token je v súlade s dokumentom RFC 8959. Viac informácií o ňom nájdete tu: https://datatracker.ietf.org/doc/html/rfc8959. Majte na pamäti, že ide o Bearer token a že ho musí špecifikovať vaša authoirizačná hlavička.

Vaše autorizačné záhlavie by malo vyzerať takto:
Oprávnenie: Nosič secret-token:<prístupový kľúč>

3.1.1.5.5. Ďalšie výukové programy#

Ak si chcete pozrieť ďalšie návody, môžete si prezrieť túto stránku alebo navštíviť stránku https://docs.taler.net, kde nájdete najnovšiu dokumentáciu o službách Taler.