Budou vám platit! Známe jednoduché řešení napojení na účetní systém

Strýček Skrblík to s plaváním v penězích už trochu přeháněl, z proplacených faktur a přicházejících peněz se ale raduje každý. Jenže co když váš účetní systém a platební brána spolu moc dobře nekomunikují, tak jako POHODA a GOPAY? Na tento problém jsem nedávno narazil na našem portálu www.servisnaklik.cz.
Propojení účetního systému s platební bránou.

Šlo o poměrně zajímavý problém. Potřebovali jsme zavést platební bránu a propojit jí s účetním systémem POHODA. Oba systémy mají svou vlastní dokumentaci, kterou bylo nejprve nutno podrobně prostudovat. Dále bylo nutné vymyslet, jak by takové propojení mohlo fungovat.

Zadání znělo následovně:

Vymyslet, jakým způsobem by se daly exportovat faktury z desktopové aplikace POHODA na FTP www.servisnaklik.cz. Následně na serveru ukládat uložená data a ty poté využít k propojení s platební bránou GOPAY.

Náčrtek tohoto procesu vypadal takto:

pohoda-graf_500.jpg

schema komunikace
Nejprvě proběhne export faktury uložené v XML souboru do složky v interní síti. Následně se spustí námi vytvořený skript, který v určitém intervalu odesílá XML soubor na FTP Servisu na klik. Po zadání čísla faktury zákazníkem se vyhledá číslo faktury v XML souboru a veškeré údaje k objednávce se uloží do proměnné. 
 
Při volání GOPAY api se pošlou údaje z proměnné na platební bránu a vytvoří se objednávka. Z GOPAY se následně odesílají stavy jednotlivých objednávek na náš server, kde je zpracovává PHP kód. Při stavu zaplaceno se ID objednávky zapíše do databáze a uživatelům se zobrazí hláška o úspěšné platbě. Při ostatních stavech se uživatelům zobrazí důvod neúspěchu dokončení objednávky.
 

Export faktur z účetního systému POHODA

Po zevrubném studování dokumentace  jsem zjistil, že POHODA v námi zakoupené verzi neumožňuje automatický export zálohových faktur. Musel jsem tedy hledat alternativní řešení pomocí ručního exportu do XML dokumentu.

faktury_500.png

faktura
 
Vyřešením tohoto problému ale mé strasti nekončily. Bylo nutné vymyslet, jakým způsobem tento dokument dostat na server Servisu na klik. Toho jsme docílili pomocí skriptu, který odesílá vygenerovaný dokument v určitém časovém intervalu na FTP. Tím byla první část úkolu dokončena.
 

PHP soubor pro zpracování přijatých dat

Následně jsem musel přijatý XML dokument využít pro komunikaci s platební bránou. Toho jsem docílil pomocí funkce Xpath, která prohledá daný soubor na základě čísla faktury zadaného zákazníkem a uloží z něj nalezené informace do příslušných proměnných. Tyto proměnné (jméno zákazníka, cena produktu, název produktu atd.) se pak používají v samotné komunikaci s platební bránou.
 

check-if-paid_500.png

Kontrola zaplacení

Integrace platební brány GOPAY

Při vlastní integraci platební brány je nutné dbát na správné propojení s poskytnutým API, které můžete prostudovat například na této stránce na GoPay.com. Dokumentace obsahuje návody a příklady použití v různých programovacích jazycích. 
 
Programátorovi je také umožněno vytvořit si testovací prostředí, ve kterém může vyladit vzniklé problémy. Dále lze zvolit si metodu komunikace s API. V nejnovější verzi se komunikuje pomocí REST api. Já jsem pro implementaci použil PHP třídu, která využívá starší verzi API s komunikační metodou SOAP, protože na serveru byla již část integrace předinstalována od předchozího správce. Po otestování funkce platební brány GOPAY posílá ostrý klíč a brána je uvedena do provozu.
 
Servisnaklik.cz
 
Tím byla integrace dokončena a celý proces fakturace plateb nyní probíhá snadněji a rychleji jak pro nás, tak hlavně pro naše zákazníky. Z ne úplně jednoduchého procesu se díky přizpůsobení aplikace na míru stala bezproblémová záležitost.