Diskuze: Komunikace s platebním terminálem
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Teď nedávno jsem to řešil. Je potřeba se spojit s poskytovatelem platebních terminálů pro tvoji společnost. Ta ti dodá podklady buď naprosto normálně, nebo proti NDA. Na základě toho, se pak dostaneš k dokumentaci + třeba i knihovně (dll) přes kterou se komunikuje s platebním terminálem. Celkem standardem je možnost zapůjčení testovacího terminálu a karty.
Já třeba řešil napojení terminálů od GlobalPayments (https://www.mujterminal.cz/), kde nebylo potřeba žádné NDA, všechno bylo krásně zdokumentované a pro C# byla dostupná i knihovna.
Pozor na to, že to nefunguje paušálně 1 protokol na všechny. Existuje cca 4 nebo 5 různých komunikačních protokolů.
Tak už jsem dostal podklady od dodavatele terminálu.
Dokumentace http://tiny.cc/…ocumentation
Heslo: Son3t
Příklady http://tiny.cc/…DLL_examples
V příkladech se volá dnes již zastaralá funkce SALE (která již v
aktuální dokumentaci není) místo aktuálního CARDSERVICE2
Bohužel z toho nejsem vůbec moudrý
Vůbec netuším jak zadané podklady zapracovat do jednoduchého řešení
typu:
Console.WriteLine("Zadejte částku:");
decimal castka = Console.ReadLine();
Terminal term = new Terminal(10.192.168.55); //Definice terminálu pomocí IP adresy
bool platbaProvedena = term.OdesliPlatbu(castka); //Odeslání požadavku na úhradu částky a získání výsledku transakce
if (platbaProvedena)
Console.WriteLine("Platba provedena");
else
Console.WriteLine("Platba neprovedena");
Nic víc nepotřebuji.
No, vidíš, tak to nejtěžší máš za sebou (Získat dokumentaci, dokonce
dokumentaci a příklad v C#)
Opravdu rychle jsem prolítnul dokumentaci a přiložené příklady (a očividně je to od všech poskytovatelů na jedno kopyto).
V HcTerm_Examples\Simulator máš VS projekt v C#, který využívá knihovnu hcterm.dll (s konfigurací hcterm.ini, kterou si knihovna načítá - zde si nastavíš sekci [tcpip] dle reality)
Čili to co jsi popsal že by jsi chtěl musí dělat:
new Terminal(10.192.168.55)
// Vytvoří konfigurační ini soubor hcterm.ini s potřebnými daty
a
term.OdesliPlatbu(castka, reference)
// potom provede to, co je ve zmíněném přikladu ve funkci Main.
Sestavení třídy Terminal by pro tebe už měla být brnkačka, protože v
tom příkladu je vlastně napsaná
PS: req.Amount i req.SystemNumber jsou ASCII kódovaná čísla ... hex 0x31 (dec 51) odpovídá znaku "1".
Zobrazeno 5 zpráv z 5.