3.1.1. Koncepční přehled#

3.1.1.1. O tomto výukovém programu#

Tento návod se zabývá zpracováním plateb pomocí obchodního backendu GNU Taler. Tento tutoriál je určen pro vývojáře obchodníků (např. webových obchodů), kteří pracují na integraci GNU Taleru s Frontendem pro zákazníky a Backoffice pro zaměstnance.

Tato kapitola vysvětluje některé základní pojmy. Ve druhé kapitole se dozvíte, jak provádět základní platby.

Tato verze výukového programu obsahuje příklady pro Python3. Pro HTTP požadavky používá knihovnu requests. K dispozici jsou i verze pro jiné jazyky/prostředí.

Pokud se chcete podívat na několik jednoduchých příkladů, podívejte se na tyto:

3.1.1.2. Přehled architektury#

Softwarový balíček Taler pro obchodníka se skládá z následujících hlavních součástí:

  • Frontend, který komunikuje s prohlížečem zákazníka. Frontend umožňuje zákazníkovi vytvořit nákupní košík a zadat objednávku. Po zaplacení spustí příslušnou obchodní logiku, která objednávku uspokojí. Tato komponenta není součástí systému Taler, ale předpokládá se, že existuje u obchodníka. Tento návod popisuje, jak vytvořit frontend Taleru.

  • Speciální platební backend Taleru, který usnadňuje frontendu zpracování finančních transakcí pomocí Taleru. V tomto tutoriálu použijete veřejný backend sandboxu. Pro produkční použití musíte buď nastavit vlastní backend, nebo požádat jinou osobu, aby tak učinila za vás.

Následující obrázek znázorňuje různé interakce těchto klíčových komponent:

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

Backend zajišťuje podporu kryptografických protokolů, ukládá finanční informace specifické pro Taler a komunikuje s výměnným systémem GNU Taler prostřednictvím internetu. Frontend přistupuje k backendu prostřednictvím rozhraní RESTful API. Díky tomu frontend nikdy nemusí komunikovat přímo s burzou a také nepracuje s citlivými údaji. Zejména podpisové klíče obchodníka a informace o bankovním účtu jsou zapouzdřeny v backendu Taleru.

Některé funkce backendu („veřejné rozhraní“) jsou vystaveny přímo prohlížeči zákazníka. V rozhraní HTTP API jsou všechny soukromé koncové body (pro Backoffice) opatřeny předponou /private/. Tento tutoriál se zaměřuje na koncové body /private/. Veřejné rozhraní používá přímo peněženka a pro obchodníka není relevantní (kromě toho, že API musí být vystaveno).

3.1.1.3. Veřejný sandbox Backend a ověřování#

Způsob ověřování frontendu vůči backendu Taleru závisí na konfiguraci. Viz Příručka pro obsluhu backendu Merchant.

Veřejný backend sandboxu https://backend.demo.taler.net/instances/sandbox/ používá klíč API v hlavičce Authorization. Hodnota této hlavičky musí být Bearer secret-token:sandbox pro veřejný backend sandboxu.

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

Pokud je vrácen jiný stavový kód HTTP než 200, něco se pokazilo. Než budete pokračovat v tomto návodu, měli byste zjistit, v čem je problém.

Backend sandboxu https://backend.demo.taler.net/instances/sandbox/ používá jako imaginární měnu KUDOS. Mince denominované v KUDOS lze vybírat z https://bank.demo.taler.net/.

3.1.1.4. Instance obchodníka#

Jeden backendový server Taler pro obchodníky může používat více obchodníků, kteří jsou samostatnými obchodními subjekty. Každému z těchto samostatných obchodních subjektů je přiřazena instance obchodníka, která je identifikována alfanumerickým identifikátorem instance. Pokud je instance vynechána, předpokládá se id instance admin.

Na adrese https://backend.demo.taler.net/ jsou nakonfigurovány následující instance obchodníků:

Poznámka

Jedná se o fiktivní obchodníky, které používáme pro naše demonstranty a kteří nejsou spojeni s příslušnými projekty ani jimi nejsou oficiálně schváleni.

Všechny koncové body instancí nabízejí stejné rozhraní API. Proto se do základní adresy URL backendu obchodníka jednoduše uvede, která instance se má použít.

3.1.1.5. Videonávody#

Tato stránka obsahuje veškerou dokumentaci k výukovému videu představujícímu rozhraní Taler merchant API.

3.1.1.5.1. Video#

3.1.1.5.2. Požadavky#

Povinné pro tuto sérii výukových programů:

  • Obchodní backend Taler
    Pro větší pohodlí doporučujeme používat stránky https://backend.demo.taler.net/instances/sandbox/.
  • Instance peněženky Taler
    Pokyny k nastavení jsou k dispozici na adrese https://wallet.taler.net, i když pro tento výukový program nejsou nutné.
  • Software pro správu rozhraní REST API nebo příslušné programátorské dovednosti
    V této sérii videí budeme používat bezplatný software Insomnia, který je k dispozici ke stažení na adrese https://insomnia.rest.
    V tomto videu si na úvod ukážeme, jak exportovat pracovní kód z připravených dotazů v Insomnii v jazyce Python (nebo v jakémkoli jiném podporovaném jazyce) a spustit je, ale v dalších tutoriálech už to nebude předvedeno.

3.1.1.5.3. Upozornění na ukázku backendu#

Pro tento výukový program důrazně doporučujeme použít online ukázkovou službu Taler pro obchodníky https://backend.demo.taler.net/instances/sandbox/.

Přístupový klíč je: Klíč: pískoviště.

3.1.1.5.4. Informace o tajném tokenu#

Tajný token je v souladu s dokumentem RFC 8959. Více informací o něm najdete zde: https://datatracker.ietf.org/doc/html/rfc8959. Mějte na paměti, že se jedná o token Bearer a že jej musí uvádět vaše authoirizační hlavička.

Vaše autorizační hlavička by měla vypadat takto:
Oprávnění: Nosič secret-token:<přístupový klíč>

3.1.1.5.5. Další výukové programy#

Chcete-li si prohlédnout další výukové programy, můžete si prohlédnout tento web nebo navštívit stránku https://docs.taler.net, kde najdete nejnovější dokumentaci ke službám Taler.