line

V prípade, že systém neobsahuje implementáciu Vami požadovanej platobnej brány (Do you support the online bank payments? (Sporopay, Tatrapay, TrustPay...)) je možné si vytvoriť vlastnú implementáciu platobnej brány. Implementácia vyžaduje programátorské skúsenosti a vlastný hosting kde bude bežať Váš skript pre prepojenie systému WEXBO® a platobnej brány.

Upozorňujeme, že systém neobsahuje priamu možnosť napojenia sa na akúkoľvek platobnú bránu, ale len možnosť prepojenia na vlastný skript umiestnený na externom hostingu, kde je nutné si implementáciu na požadovanú platobnú bránu vykonať vo vlastnej réžii.

Technickú podporu k uvedenej možnosti poskytujeme len v rámci prípadného objasnenia fungovania prepojenia, prípadne doplnenia tejto nápovedy. Vzhľadom na technickú náročnosť a rôznorodosti technických dokumentácií platobných brán, neposkytujeme informácie či technickú podporu k samotnej implementácií, fungovaniu, či testovaniu Vašej implementácie.

Základné pokyny

  1. V sekcii Add-ons / Plugins / Payment gateways po kliknutí na tlačítko Add a payment gateway pridajte platobnú bránu s názvom "Vlastná platobná brána" kde získate "Key (password)" pre implementáciu prepojenia.
  2. V sekcii Eshop / Payment po kliknutí na tlačítko Add a payment method pridajte spôsob platby a v úprave v položke "Type of payment" nastavte pred-vytvorenú platobnú bránu. Pre testovanie odporúčame danú platbu zobraziť napr. len skupine "Administrátor".
  3. Je nutné si u niektorého z poskytovateľov hostingu vytvoriť hostingový priestor, kde umiestnite prepojovací vlastný skript.
  4. Skript napojenia na samotnú platobnú bránu je nutné vytvoriť na základe technickej dokumentácie požadovanej platobnej brány a následne ho umiestniť na uvedený hosting, aby bol dostupný na URL adrese. Využiť je možné subdoménu Vašej domény, ktorú nastavíte, resp. potrebné DNS záznamy subdomény nastavíte v sekcii Settings / Domains po kliknutí na akciu   požadovanej domény.
  5. Nakoniec v skripte vytvorte prepojenie medzi systémom WEXBO®, resp. pred-vytvorenou platobnou bránou "Vlastná platobná brána" a požadovanou platobnou bránou, resp. Vaším skriptom umiestneným na vlastnom hostingu. Prepojenie vykonáte podľa dokumentácie uvedenej nižšie, avšak v prvom rade zadaním URL adresy na Váš skript do položky "URL address" v sekcii Add-ons / Plugins / Payment gateways v úprave platobnej brány "Vlastná platobná brána" .

Proces spracovania

Popis spracovania

  1. Ak si zákazník v košíku vyberie spôsob platby cez "Vlastná platobná brána", po vytvorení objednávky sa zobrazí tlačítko s odkazom na vlastný skript (položka "URL address" v úprave platobnej brány v systéme WEXBO®).
  2. Po kliknutí na tlačítko, systém WEXBO® zákazníka presmeruje na zvolenú URL adresu (Vášho skriptu), kde zároveň v požiadavke odošle aj všetky potrebné dáta ohľadom objednávky (ID objednávky, celková suma, informácie o zákazníkovi, návratové či notifikačné URL adresy, atď.). Dáta sú odosielané metódou POST v parametri s názvom "token" zabalené v štruktúre typu JWT.
  3. Váš skript načíta daný POST parameter "token" a dekóduje (Base64) do štruktúry JWT (JSON), prípadne pomocou uvedeného algoritmu (SHA256) a tajného kľúča ("Key (password)") overí konzistenciu prijatých dáta. Tento proces je už súčasťou pred-vytvoreného skriptu "index.php", (viď. odstavec "Prepojenie"). Príklad prijatých dát vo formáte JSON:
    {
    "account": {
    "alg": "HS256",
    "crypt": "AES-256-CBC",
    "domain": "example.com",
    "email": "info@example.com",
    "endpoint": "pg_100",
    "eshop_id": 1,
    "test": false,
    "timestamp": 1700000000,
    "type": "frontend",
    "uuid": "1bd118e7-3c82-8f95-5e46-5ff5b6d3484f",
    "version": "v1"
    },
    "customer": {
    "city": "Bratislava",
    "country": "sk",
    "country_code": 703,
    "email": "customer@gmail.com",
    "first_name": "John",
    "ip": "127.0.0.1",
    "last_name": "Doe",
    "name": "John Doe",
    "phone": "+421910123456",
    "street": "Uličná",
    "street_number": "1",
    "zip": "81101"
    },
    "items": [
    {
    "type": "item",
    "id": 1000001,
    "name": "Dezertový tanier",
    "price_unit_novat": 5,
    "price_total_novat": 5,
    "price": 6,
    "quantity": 1,
    "url": "https://www.example.com/d/1000001/",
    "vat": 20
    },
    {
    "type": "shipping",
    "price": 6,
    "quantity": 1,
    "vat": 0
    }
    ],
    "order": {
    "amount": 12,
    "currency": "EUR",
    "currency_code": 978,
    "description": "Objednávka 12000001",
    "language": "sk",
    "reference": "12000001",
    "session": "ac257332fdfb376957383291c5878a4d",
    "timestamp": 1700000000
    },
    "url": {
    "cancel": "cancel/",
    "error": "error/",
    "notification": "notification/",
    "pending": "pending/",
    "return": "https://www.example.com/cart/pay/pg_100/",
    "success": "success/"
    }
    }
  4. Získané dáta o objednávke v štruktúre JSON si Váš skript musí uložiť do databázy alebo súboru, a následne využiť na vytvorenie požiadavky pre presmerovanie či zobrazenie okna platobnej brány, kde zákazník vykoná samotnú platbu.
  5. Po vykonaní platby bude zákazník presmerovaný späť na zvolenú URL adresu (Váš skript), ktorý spracuje stav vykonania platby (uhradené, zrušená platba, čaká sa na úhradu, atď.).
  6. Nakoniec Váš skript presmeruje zákazníka späť do e-shopu na ďakovnú stránku aj so stavom platby. Návratová URL adresa pre konkrétny stav je obsiahnutá v dátach o objednávke, ktorú Vám systém už odoslal (viď. bod 3. a 4.).
  7. Systém WEXBO® zobrazí zákazníkovi ďakovnú obrazovku s odoslaným stavom platby, prípadne tlačítko pre opakovanie platby pri jej zrušení.
  8. Dodatočne Váš skript môže poslať informáciu o stave či spracovaní platby, aby systém WEXBO® označil objednávku ako uhradenú. Tento stav platby sa odosiela na pozadí. Pre tento účel slúži pred-vytvorený notifikačný skript "notification.php", (viď. odstavec "Prepojenie"), pričom notifikačná URL adresa, na ktorú sa odosiela stav platby je obsiahnutá v dátach o objednávke, ktorú Vám systém už odoslal (viď. bod 3. a 4.).

Prepojenie

Vzorové skripty pre prepojenie aj s pred-vytvorenou triedou v programovacom jazyku PHP poskytujeme v ZIP súbore "wexbo_payment_gateway_v1.zip", ktorý je možné si stiahnuť. Stiahnutý súbor ZIP je nutné rozbaliť, požadovane upraviť a nahrať na hosting, pričom sa v ňom nachádzajú nasledujúce PHP skripty:

  • wexbo_payment_gateway.php - Trieda (PHP class) pre jednoduchšie spracovanie a odosielanie požiadaviek.
  • index.php - Príklad vlastného skriptu pre príjem dát o objednávke so systému WEXBO® a následné presmerovanie späť do e-shopu aj so stavom platby. Skript neobsahuje samotné napojenie na platobnú bránu, ktoré je nutné do skriptu doplniť.
  • notification.php - Príklad notifikačného skriptu, ktorý odosiela stav platby do systému WEXBO® na pozadí, po tom čo už bol zákazník presmerovaný do e-shopu na ďakovnú stránku. Skript slúži na hlavne na automatické priradenie úhrady k objednávke, prípadne zapísanie stavu platby do histórie objednávky. Skript neobsahuje samotné napojenie na platobnú bránu, ktoré je nutné do skriptu doplniť.

Do skriptov "index.php" a "notification.php" je nutné doplniť premennú "WEXBO_PAYMENT_GATEWAY_KEY", pričom hodnotu pre ňu nájdete v sekcii Add-ons / Plugins / Payment gateways v úprave pred-vytvorenej platobnej brány "Vlastná platobná brána" v položke "Key (password)". Jedná sa o tajný kľúč, ktorý slúži na šifrovanie, dešifrovanie, podpisovanie a overenie odosielaných dát.

Všetky informácie o objednávke aj s návratovými URL adresami a notifikačnou URL adresou sú obsiahnuté v POST parametri "token", ktorý ukážkový skript "index.php" spracuje a zobrazí.

Prepojenie bez programovania a hostingu

Na prepojenie je pravdepodobne možné využiť niektorý z nástrojov na automatizáciu prepojení, ktorý podporuje napojenie na požadovanú platobnú bránu. Odpadá tak nutnosť hostingu či nejaká znalosť samotného programovania. Automat samozrejme musí dokázať prijímať a odosielať požiadavky metódou POST, dekódovať dáta prostredníctvom Base64, podporovať štruktúru dát vo formáte JWT, prípadne len JSON a podporovať algoritmus SHA256, čo by mali byť bežné nástroje pre automatizáciu. Príkladom služieb daného typu sú Make, IFTTT, Zapier, Integrately, Celigo, n8n, Power Automate, atď.

cookiex
Contact uswe are providing the support during the work days