Skip to content

Noční můra jménem payU

Ve své praxi jsem již realizoval řadu platebních bran. Odhadem asi tak deset. Zejména zahraniční, ale i českou GoPay. Nyní mi osud do cesty přivedl payU.

Oproti jiným platebním branám jsem nedostal žádnou předpřipravenou PHP třídu, kterou by stačilo „přiohnout“. Nevadí, to není vždycky.

Jejich návody mi přijdou na můj vkus docela chaotické.

Ale při všech těch těžkostech jsem se implementací jakžtakš prokousal. Zcela jsem se vyhnul používání jejich javascriptů (nefungovaly). Stejně to, v souladu s dobrou praxí musí fungovat i bez JS. Jednoduše bylo tlačítko s formulářem, které odeslalo požadavek na novou platbu. Tento požadavek směřoval na jejich platební bránu, kde si uživatel vybral platbu a zaplatil. Na testovacích platbách vše fungovalo.  Zpětné volání z payU proběhlo správně a předávalo nám i typ platby. Z mého pohledu plně funkční implementace.

Když v tom od payU přišel požadavek na to, abychom naše skripty opravily tak aby jim předávaly typ platby. Marně jsem se snažil podpoře vysvětlit, že typ platby si volí uživatel v jejich platební bráně a tudíž jim ho my nemůžeme předat. Ale naopak jej musejí oni předávat nám. A že nám ho i předávají a z toho logicky plyne, že jej znají a tudíž ho od nás ani nepotřebují dostávat.

Pak do toho začali motat cosi o externí šabloně. Že prý používáme externí šablonu a v tom případě jim musíme předat typ platby. Do dnešního dne jsem jim nedokázal vysvětlit, že žádnou externí šablonu nepoužíváme, že se naopak snažíme používat jejich (logicky interní) šablonu. Je to jako když háže hrách na stěnu.

Nicméně pokusil jsem se tedy upravit implementaci tak abych použil i jejich JS. Původně jsem se jejich použití vyhnul hlavně proto, že vypisovaly ve FireBugu chybu a funkce PlnPrintTemplate() nic nevypisovala. Nyní jsem to zkusil znovu. Totožná implementace (provedl jsem jen odkomentování) nyní chyby neházela a funkce aspoň něco vypisuje, i když platební metody nenabízí. Tak jsem to paní napsal. Že vkládáme skripty a na příslušném místě voláme funkci PlnPrintTemplate(), ale že se žádné platební metody nenabízejí, místo toho se vypisuje text, který jsem paní okopíroval. Na to mi odpověděla, že mám vložit skripty a na příslušné místo vložit volání funkce PlnPrintTemplate().

Pokud se Vám nad tím nechce moc přemýšlet, je to jakobyste někomu řekli: „Čoveče já pokládám A na B, ale místo C se stane D“ a on Vám odpověděl: „Jasně, jasně. Polož A na B.“ Tak nevím jak tohle dopadne a co to všechno má vlastně znamenat.

Je pravda, že implementovat platební bránu někdy bývá trochu komplikovanější. Ale to co předvádí payU vydá v součtu za všechny ostatní brány co jsem kdy nasazoval.

Technická podpora platební brány by měla být na zcela jiné úrovni než jak to předvádí payU. Pracovnice se kterými komunikuji nejsou moc odborně zdatné. Jedna se se mnou pře, že Javascript, který je vložen do stránek je záležitostí komunikace mezi naším serverem a jejich branou a že tudíž funguje i když má klient vypnutý JS. Neměl jsem sílu jí to vymlouvat.

Zdlouhavá komunikace se neustále vede v tom duchu, že údajně používám nějakou externí šablonu (kterou podle mě nepoužívám). A že protože ji používám, tak jim musím předávat typ platby. Jenže po celou dobu této komunikace. Ať již bylo řešení s JS nebo bez, testovací platby fungovaly. A z payU jsme dostávali na náš server správný typ platby. Tak nevím. Buďto tam mají takový nepořádek, že ani nevědí jaké proměnné jejich server zná. V takovém případě bych se bál takovou bránu používat. A nebo se podpora snaží řešit situaci, které sama nerozumí.

Už jsem z toho strašně znechucen a jsem zvědav jak tohleto dopadne.

3 Comments