Hlavní nastavení
Aktivace platební brány
Nastavení GoPay údajů
Nastavení pro GoPay
GoId – id eshopu, které jste obdrželi od GoPay
Client Id – vaše přidělené klientské číslo
Client secret – kód, pro spojení s api GoPay
Test mód – nastavení určuje, zda provádíte testovací platby, či již nastavujete ostrý provoz
Upozornění!
Pro testovací a ostrý provoz dostanete odlišné údaje.
Při komunikaci s GoPay po Vás bude vyžadována notifikační URL. Je potřeba jim sdělit, že plugin GoPay Inline používá technologii Rest API, což znamená, že si tuto notifikační URL vygeneruje a pošle sám.
Nastavení EET
Přestože GoPay vyřeší velkou část starostí s EET za vás, pokud jste plátce DPH a máte více sazeb daně, určitou implementaci potřebujete.
Proto je k dispozici nastavení pro EET
Jako první musíte aktivovat odesílání údajů o EET do GoPay
Následně zaškrtněte, zda používáte jen jednu szabu daně, do GoPay se tak bude posílat jen údaj o částce bez DPH a DPH samotné.
V případě, že používáte více sazeb, musíte sazbám, jenž jsou definované, přiřadit ty vaše.
Bez toho, nebude plugin vědět, podle čeho roztřídit a rozepsat položky jednotlivých sazeb.
Následně to musíte udělat i pro dopravu, příplatky a kupóny.
A to je vše. O ostatní se postará plugin a GoPay.
Povolení platebních metod
GoPay, kromě platební karty, nabízí celou řadu dalších možností.
Je potřeba nastavit ty, které budete používat. slovenské platební metody se automaticky zobrazí, při změně vybrané země.
Na pokladně to pak vypadá takto.
Apple Pay
Nejprve si aktivujte Apple Pay ve svém účtu na gopay.cz
Ve druhém kroku je nutné platební metodu Apple Pay nastavit v pluginu. Přejdetě do WooCommerce → Nastavení → Pokladna → GoPay → Povolit GoPay platební metody → klikněte do pole a vyberte Apple Pay → Uložte.
Nyní se Vám v pokladně zobrazí platební metoda Apple Pay.
Upozorňujeme, že na testovacím prostředí nelze úspěšně uhradit platbu, protože do Apple Pay lze uložit pouze skutečné karty, které na testovacím prostředí nefungují. Všechny platby se tedy budou jevit zamítnuté ze strany banky.
Apple pay
Plugin GoPay Inline podporujem platební metodu Apple Pay!
Nejprve si aktivujte Apple Pay ve svém účtu na gopay.cz
Ve druhém kroku je nutné platební metodu Apple Pay nastavit v pluginu. Přejdetě do WooCommerce → Nastavení → Pokladna → GoPay → Povolit GoPay platební metody → klikněte do pole a vyberte Apple Pay → Uložte.
Nyní se Vám v pokladně zobrazí platební metoda Apple Pay.
Upozorňujeme, že na testovacím prostředí nelze úspěšně uhradit platbu, protože do Apple Pay lze uložit pouze skutečné karty, které na testovacím prostředí nefungují. Všechny platby se tedy budou jevit zamítnuté ze strany banky.
Testování plateb
Pro vyzkoušení funkčnosti pluginu, můžete použít tyto testovací karty:
Typ karty | Číslo karty | Stav autorizace |
---|---|---|
MasterCard | 5447380000000006 | Úspěšná – platba uhrazena |
VISA | 4444444444444448 | Úspěšná – platba uhrazena |
VISA | 4188030000000011 | Nedostatek peněžních prostředků na kartě – platba zamítnuta |
Maestro | 6705040000000019 | Zamítnuto v autorizačním centru banky – platba zamítnuta |
MasterCard | 5160000000000013 | Špatné číslo karty – platba zamítnuta |
Pro úspěšnou platbu zadejte:
Číslo karty: 5447380000000006
Platnost: jakýkoliv měsíc v budoucnosti, například 01/22
CVV: jakékoliv číslo, například 123
Kompatibilita s WPML
WPML je jeden z nejpoužívanějších pluginů pro vytváření jazykových verzí WordPress stránek.
Plugin pro platební bránu je plně přeložitelný, pomocí MO souborů, s kterými umí pracovat program PoEdit a plugin Loco Translate.
Plugin obsahuje detekci zvoleného jazyka a podle něj nastaví jazyk dialogu platební brány.
Akceptovány jsou tyto jazyky:
- Angličtina
- Němčina
- Ruština
- Polština
- Slovenština
- Čeština
Při jiném jazyce je automaticky nastavena čeština.
Plugin obsahuje také filtr pro možnost změna jazyka. Příklad pro WPML najdete zde https://woo-inline-gopay.toret.cz/zmena-jazyka-brany-pomoci-filtru/
Omezení platebních metod pomocí filtru
Výběr platebních metod, které GoPay nabízí, umožňuje select s ikonami každé platební metody.
V pokladně to vypadá takto:
Protože má GoPay nastavení, které umožňuje vybrat, pro které země se bude nabídka zobrzovat, můžete výběr povolit například pro Českou Republiku, ale pro Slovensko ne.
Což může být problematické, pokud potřebujete pro některé případy, vypnout určité platební metody.
Proto plugin obsahuje filter gopay_checkout_enabled_methods, který umožňuje upravovat pole platebních metod pro GoPay.
Jsou to:
- PAYMENT_CARD
- BANK_ACCOUNT
- PRSMS
- MPAYMENT
- PAYSAFECARD
- SUPERCASH
- GOPAY
- PAYPAL
- BITCOIN
Následující funkce umístěná do souboru functions.php, zobrazí pro angličtinu a němčinu ( při použití WPML ), jen PayPal a platební kartu:
add_filter( 'gopay_checkout_enabled_methods', 'custom_en_payments' ); function custom_en_payments( $payment_methods ){ if( ICL_LANGUAGE_CODE == 'en' || ICL_LANGUAGE_CODE == 'de' ){ $new_array = array(); foreach( $payment_methods as $key => $item ){ if( $key == 'PAYMENT_CARD' ){ $new_array[$key] = $item; } elseif( $key == 'PAYPAL' ){ $new_array[$key] = $item; } } if( !empty( $new_array ) ){ return $new_array; } }
return $payment_methods; }
Povolení doprav a zemí
Pro správné fungování platebního procesu, je často nutné, omezit platební bránu jen na určité země, nebo dopravní metody.
Například, pro osobní vyzvednutí, můžete chtít zakázat platební kartu.
V nastavení najdete dvě pole, do kterých, když kliknete, budete moci vložit položky, kterých se oezení bude týkat.
Výchozí jazyk platební brány
Platební brána GoPay podporuje několik jazyků a z toho důvodu, určuje plugin, dle zvolené země, v jakém jazyce se bude brána zobrazovat.
Můžete si vyzkoušet, že při zvoleném Slovensku, bude rozhraní ve Slovenštině.
Avšak, je možné, že zákazník bude i z jiné země, než je nadefinováno v pluginu ( GB, DE, PL, SK a CZ).
Z toho důvodu je možné v nastavení pluginu Toret plugins -> GoPay Inline, zvolit výchozí jazyk, pro všechny ostatní země. Zde na testovacím eshopu je pro otestování dostupná Siera Leone.
V případě, že vám toto nebude dostačující, obsahuje plugin i filter, který umožňuje manipulovat s jazykem brány:
return apply_filters( ‚gopay_inline_default_lang‘, $lang, $order );
Filtr se nachází v souboru gopay-functions.php ve složce includes/gopay/.
Překlad pluginu pomocí WPML
Pokud překládáme plugin pomocí WPML, nejprve musíme přeložit řetězce, které plugin obsahuje.
V položce menu String Translation vyhledáme to co chceme přeložit a pokud je to přiřazené špatnému jazyku, změníme to.
Na konci videa je vidět že se nepodařil přeložit text popisu platební metody. To proto, že se jedná o uložené options a nebyl nakonfigurován překlad WooCommerce.
Poté, co byl přeložen jeden produkt a vytvořeny EN verze pro WooCommerce stránky, přidali jsme produkt do košíku a dokončili překlad popisu platební metody:
Jazyk platební brány
Vyvolání dialogu platební brány lze provést v různých jazycích. Gopay tak umožňuje používat platební bránu i v zahraničí.
Bohužel, WordPress nemá v sobě zakomponovaný mechanismus pro změnu jazyka. Proto se na toto používají různé doplňkové pluginy.
Ty sice umožňují mít vícejazyčný web a většinou spolupracují s WooCommerce, ale protože je jich více, není možné zjistit, v jakém jazyce je přepnutý eshop, ve chvíli, kdy je uskutečněna ojednávka.
U většiny pluginů je možné zjistit aktuální jazyk a dle toho upravit i jazyk vyvolaného dialogu pro GoPay.
Pro tento případ je v pluginu připraven filtr, s názvem gopay_inline_default_lang.
Ten přijímá argumenty $default_lang a $order.
Defaultní jazyk platební brány je stanovován následovně:
- zkontroluje se nastavení pluginu a pokud není nastaven výchozí jazyk, je označen jako CS.
- Následně se zkontroluje země zákazníka a pro GB, PL, SK, DE a RU se nastaví odpovídající jazyk. Pokud je země jiná, použije se v prvním kroku nastavený výchozí jazyk.
- v posledním kroku se vrací nastavený jazyk, přes výše zmíněný filtr gopay_inline_default_lang
Kód funkce pro stanovení jazyka:
function gopay_inline_get_lang( $order, $order_meta ){
$country = $order_meta[‚_billing_country‘][0];
$option = get_option( ‚woo_gopay_inline‘ );
if( !empty( $option[‚default-lang‘]) && $option[‚default-lang‘] != ‚-‚ ){
$default_lang = $option[‚default-lang‘];
}else{
$default_lang = ‚CS‘;
}
if( $country == ‚CZ‘ ){ $lang = ‚CS‘; }
elseif( $country == ‚GB‘ ){ $lang = ‚EN‘; }
elseif( $country == ‚SK‘ ){ $lang = ‚SK‘; }
elseif( $country == ‚DE‘ ){ $lang = ‚DE‘; }
elseif( $country == ‚RU‘ ){ $lang = ‚RU‘; }
elseif( $country == ‚PL‘ ){ $lang = ‚PL‘; }
else{
//Get default language
$lang = $default_lang;
}
return apply_filters( ‚gopay_inline_default_lang‘, $lang, $order );
}
Ovlivnění jazyka pomocí vlastní funkce
Jazyk platební brány můžete ovlivnit právě pomocí filtru v posledním kroku.
Do pluginu, nebo do functions.php aktivní šablony vložte funkci:
// Custom filter from payment Gateway developers
add_filter( 'gopay_inline_default_lang', 'gopay_create_payment_lang' );
function gopay_create_payment_lang(){
return 'EN';
}
// End of custom filter from payment Gateway developers
Nyní bude vaše platební brána vždy v angličtině. V případě, že chcete zobrazovat dialog podle zvoleného jazyka, musíte kód funkce upravit tak, aby reflektovala aktuální jazyk. Což je ale již záležitost použitého pluginu.
Změna jazyka brány pomocí filtru
Přestože se snažíme co nejvíce usnadnit používání pluginu, není možné být připraven na všechny možnosti, které WordPress nabízí.
Proto plugin obsahuje filter, pomocí kterého je možné změnit nastavení jazyka platební brány.
Pomocí následující funkce, kterou můžete vložit do functions.php a změnit jazyk brány. Příklad je pro WPML.
add_filter( 'gopay_create_payment_lang', 'my_custom_gopay_function' );
function my_custom_gopay_function( $lang ){ //Získáme aktuální jazyk $current_lang = ICL_LANGUAGE_CODE; if( $current_lang == 'en' ){ return 'EN'; }else{ return 'CS'; } }
Tato funkce pro zvolenou angličtinu, nastaví dialog platební brány na angličtinu. Pro jiné jazyky bude brána v češtině.
Změna klientských údajů pomocí filtru
Klientskými údaji jsou myšleny Go id, client id a client secret.
Tyto údaje slouží k navázání spojení s GoPay. Pomocí filtrů můžete ovlivnit jejich volání a můžete je změnit. Je tak možné, mít několik účtů na GoPay a podle předem definovaných podmínek tyto účty přepínat.
My si ukážeme, jak změnit údaje podle toho, jaká dopravní metoda byla použita v objednávce.
Samotná definice filtrů vypadá takto:
$client_id = apply_filters( ‚gopay_inline_client_id‘, $client_id, $order_id );
$client_secret = apply_filters( ‚gopay_inline_client_secret‘, $client_secret, $order_id );
$goid = apply_filters( ‚gopay_inline_goid‘, $goid, $order_id );
Každy z filtrů kromě hodnoty, obsahuje i id objednávky. Pomoci id objednávky pak můžete zůskat objekt objednávky a řešit různé případy a podmínky.
Příklad je psaný na zjištění id dopravní metody, avšak, pokud použijete stejnou dporavní metodu vícekrát, musíte zjistit ii její instance, pomocí $shipping->get_instance_id();
<?php | |
add_filter( ‚gopay_inline_client_id‘, ‚toret_change_client_id‘, 10, 2 ); | |
function toret_change_client_id( $client_id, $order_id ){ | |
$order = wc_get_order( $order_id ); | |
$shipping = $order->get_items( ‚shipping‘ ); | |
$shipping = array_shift( $shipping ); | |
if( $shipping->get_method_id() == ‚flat_rate‘ ){ | |
return ‚my_custom_client_id‘; | |
} | |
return $client_id; | |
} | |
add_filter( ‚gopay_inline_client_secret‘, ‚toret_change_client_secret‘, 10, 2 ); | |
function toret_change_client_secret( $client_secret, $order_id ){ | |
$order = wc_get_order( $order_id ); | |
$shipping = $order->get_items( ‚shipping‘ ); | |
$shipping = array_shift( $shipping ); | |
if( $shipping->get_method_id() == ‚flat_rate‘ ){ | |
return ‚my_custom_client_secret‘; | |
} | |
return $client_secret; | |
} | |
add_filter( ‚gopay_inline_goid‘, ‚toret_change_goid‘, 10, 2 ); | |
function toret_change_goid( $goid, $order_id ){ | |
$order = wc_get_order( $order_id ); | |
$shipping = $order->get_items( ‚shipping‘ ); | |
$shipping = array_shift( $shipping ); | |
if( $shipping->get_method_id() == ‚flat_rate‘ ){ | |
return ‚my_custom_goid‘; | |
} | |
return $goid; | |
} |
Filtr pro přidání popisku k jednotlivé platební metodě
V případě, že chcete k jednotlivým platební metodám z pluginu Gopay přidat popisek, tak je možné jej přidat pomocí filtru.
Příklad filtru: add_filter('toret_gopay_select_description', 'toret_custom_description', 10, 3);
if( !function_exists( 'toret_custom_description' ) ){
function toret_custom_description( $text, $BankId, $ItemName ){
if( $BankId == 'PAYMENT_CARD' ){
$text = 'Card Description';
}
if( $ItemName == 'Platba 24' ){
$text = 'Platba 24 Description';
}
return $text;
}
}
V příkladu je přidán popisek pro platební metodu Platební karty a Platba 24. Pokud chcete přidat popisek pro jiné platební metody, tak je nutné je ve filtru definovat. Popisek je nutné nastylovat.