GoPay modul pro Drupal 8 - ukázka použití

25. 1. 2018
Marek Měchura

V předchozí článku jsme si představili základní možnosti modulu včetně instalace a nastavení. V tomto pokračování si ukážeme základní implementaci vytvoření platby a zpracování. 

Vytvoření controlleru

Aby bylo možné vytvořit stránku, kde bude „platební“ tlačítko, je potřeba v Drupalu 8 vytvořit controller a injectovat do něho service gopay.factory, který umožňuje vytvoření GoPay platby.

Podrobnější informace ohledne práce s controllery v Drupalu 8 je posána v dokumentaci.

Vytvoření platby

Pro vytvoření platby umožňuje GoPay modul nadefinování platby a vytvoření tlačítka, které poté uživatele přesměruje na platební bránu. V případě použítí https zobrazí GoPay lightbox pro platbu přímo v rámci stránky. Modul v současné době podporuje pouze vytvoření standardní platby, kterou v následujícím příkladu přidáme do našeho controlleru.

Zpracování platby

Po provedení platby, ať již úspěšné nebo neúspěšné, budeme přesměrovaní na URL, kterou je možné nastavit dvěmi způsoby.

  1. URL zadaná v nastavení GoPay modulu (viz předchozí článek).
  2. URL zadaná při vytváření platby pomocí ->setReturnUrl(). Tento způsob je demonstrován v příkladu vytváření platby.

Samozřejmě je možné nastavit URL v administraci a poté si pro specifické platby URL upravit přímo při vytváření platby. Každopádně je potřeba implementovat další metodu controlleru, která se bude volat po přesměrování z GoPay. Může vypadat třeba takto.

Jak je z ukázky vidět, tak platba z GoPay vrací jako GET parametr id platby, pomocí kterého si načteme detail informace z GoPay o průběhu platby. Celý controller je dostupný na Githubu.

Routy

Aby vše předchozí fungovalo, je potřeba ještě nadefinovat routy (viz dokumentace) pro implementované metody controlleru.

Závěr

Jak vidíte, vytvoření a zpracování platby přes GoPay není s tímto modulem nic složitého. Pokud i tak narazíte na problém nebo nejasnost, tak nám určitě dejte vědět. Ať už mailem nebo vytvořením ticketu na drupal.org.

Other articles