Monthly Archives: May 2008

EBanking server simulator

Pred nedávnom som implementoval knižnicu na EBanking (konkrétne som mal za úlohu implementovať SLSP SporoPay, TatraPay, CardPay a VUB EPlatbu). Všetky tieto protokoly komunikujú so servermi príslušnej banky cez klientov browser HTTP protokolom.

V skratke: stránka vyskladá payment request (zoznam pomenovaných hodnôt, napr mena, suma, variabilný symbol…), dôležité dáta zhashuje a zašifruje symetrickou šifrou kľúčom, ktorý má iba banka a stránka. Výsledkom toho je podpis, ktorý chráni dáta – ak by sa počas prenosu zmenili, tak to druhá strana dokáže zistiť a zmenené dáta ignorovať, akoby vôbec neprišli. Podpis sa pridá k hodnotám a tie sa cez klientov browser odošlú na server jeho banky – väčšinou formou HTTP GET – tj postačí obyčajný odkaz. Banka teda má údaje o tom, čo chce klient zaplatiť, klient sa potom autentifikuje na stránke banky a potvrdí transakciu, na čo banka vytvorí response rovnakým spôsobom, ako predtým stránka robila request a klient je presmerovaný naspäť na stránku obchodníka, ktorý dostal podpísanú správu od banky.

No a nakoľko nieje vždy po ruke človek, ktorý má v danej banke konto, debugging tohoto procesu je nepríjemný. Preto som spravil narýchlo tento tool, ktorý simuluje server banky. Vyplníte typ transakcie (v súčasnosti sú podporované SporoPay, TatraPay, CardPay a VUB ePlatba), zadáte request vo forme URL a zdieľaný kľúč na vytvorenie podpisu a potom si môžete vybrať, či chcete response OK (transakcia sa podarila), Fail (transakcia sa nepodarila) alebo Timeout (transakcia ešte neskončila). Výsledkom je response vo forme URL – copy&paste do browsera a preskočili ste presmerovanie na banku a debugovať môžete donekonečna – dokonca ani nemusíte mať zriadené konto v banke, aj keď to je potom problém sa dostať k špecifikáciám, podľa ktorých je nutné platobný systém implementovať.

Tool vydávam pod GPL licenciou, hlavne z toho dôvodu, aby ste videli, že sa nejedná o malware.

Zdrojové kódy nájdete na svn://dev.monogram.sk/pokojny/EBankingServerSimulator , binárka je na stiahnutie tu. Použitým jazykom je C# , .NET 2.0, takže ho zatiaľ spustíte iba na windowse.

Cvičenie: manipulácia webových ankiet

Nedávno ma kamarát poprosil o zahlasovanie v jednej on-line ankete. Spamovaním svojich známych s touto prosbou chcel docieliť lepšie umiestnenie.

V tom ma napadlo zadanie nového cvičenia: manipulácia webových ankiet. Vyrobil som stránku s (podľa mňa) priemerným anketovacím systémom. Tento v určitej miere zamedzuje opätovnému hlasovaniu. Hlasy môžu putovať jednotlivým súťažiacim (predpokladám, že každý bude hlasovať za seba :-) ). No a Vašou úlohou je (ako inak) získať čo najviac hlasov.

Súťaž prebieha v kolách – každý deň nové kolo. Pri uzavretí kola sa obnovia celkové výsledky. “Vyhráva” ten súťažiaci, ktorý bude mať najviac hlasov za niektoré z uplynulých kôl. Súťaž nemá koniec, iba ak by bol na servri cítiť znateľný nárast trafficu, tak pouvažujem nad jej ukončením.

Link na stránku s anketou

Keď sa chcete zúčastniť súťaže, musíte mať vytvorené konto. Úlohu som si uľahčil o to, že sa používajú kontá ľudí zaregistrovaných na mojom blogu. Prihlásiť sa do súťaže je možné Vaším prihlasovacím menom na stránke s anketou.

Príjemnú zábavu!