VMTech
Razgovarajmo
← Sve kompetencije
SISTEMI I INTEGRACIJE · 09

Online plaćanje

Plaćanje je jedino mesto u sistemu gde greška direktno košta. Zato se projektuje kao da će veza pući u najgorem trenutku: sigurno će pući.

Razgovarajmo
ŠTA MOŽE POĆI NAOPAKO

Šest mesta gde se plaćanje obično gubi

Svaki korak može da propadne — i u svakom sistem mora da ostane u jasnom stanju.

checkout.example.rs
Transakcija za porudžbinu #4821
LIVE
nema razlika
Dvostruki klik jedna transakcija
Iznos izmenjen potpis ispravan
Klijent zatvorio karticu callback primljen
Gateway nije odgovorio status se proverava
Povraćaj vraćeno
Dnevno usklađivanje nema razlika
ŠTA MOŽE POĆI NAOPAKO
  1. Dvostruki klikKljuč transakcije čini ponavljanje bezbednim: dva zahteva prave jedno plaćanje, a ne dva skidanja
  2. Iznos izmenjenIznos se uzima iz porudžbine na serveru, a ne iz forme — potpis zahteva se proverava
  3. Klijent zatvorio karticuIshod stiže posebnim obaveštenjem gateway-a — porudžbina se ažurira i bez povratka klijenta
  4. Gateway nije odgovorioTransakcija se označava kao neizvesna i ispituje se: status se traži dok ne postane jasan
  5. PovraćajPun ili delimičan, vezan za izvornu transakciju; ponovljeni zahtev ne pravi drugi povraćaj
  6. Dnevno usklađivanjeIzvod se upoređuje sa transakcijama: razlike se izlistavaju, a ne traže ručno
POZNATA SLIKA

Šta biva kada je naplata povezana „po uputstvu“

Minimalno povezivanje

  • Klijentu je dvaput skinut novac, jer je dvaput kliknuo
  • Status porudžbine se menja samo kada se klijent vrati na sajt nakon plaćanja
  • Ako gateway ne odgovori, transakcija zauvek ostaje u neizvesnom stanju
  • Povraćaj se radi u portalu banke, a sistem za to ne zna
  • Usklađivanje je knjigovođa, izvod i veče sa kalkulatorom krajem meseca

Inženjersko povezivanje

  • Ponovljen zahtev sa istim ključem vraća istu transakciju, a ne pravi novu
  • Ishod stiže na server direktno i obrađuje se nezavisno od pregledača
  • Neizvesne transakcije automatski se proveravaju do konačnog statusa
  • Povraćaj ide kroz sistem, pa porudžbina, magacin i izveštaj odmah saznaju
  • Usklađivanje je dnevno i automatsko: spisak razlika stiže ujutru
OBIM POSLA

Šta ulazi u rad sa plaćanjima

Model transakcija

Porudžbina i plaćanje su različiti entiteti sa svojim stanjima; prelazi su izričito opisani.

Povezivanje gateway-a

Inicijalizacija, potpis zahteva, obrada odgovora i zaštićena obaveštenja banke.

Ponovljivost operacija

Ključevi idempotentnosti, da ponovljen zahtev ne postane drugo skidanje.

Odbijanja i istek vremena

Jasna poruka klijentu, čuvanje porudžbine i automatsko razrešavanje nejasnih statusa.

Povraćaji i storniranja

Pune i delimične operacije iz admin panela uz proveru prava i zapis ko ih je izvršio.

Usklađivanje

Dnevno upoređivanje transakcija sa izvodom i izveštaj o onome što se ne poklapa.

Dnevnik i vidljivost

Svaki pokušaj je sačuvan sa odgovorom gateway-a; porast odbijanja vidi se odmah, a ne po žalbama.

Test scenariji

Proveravamo ne samo uspešno plaćanje, već i odbijanje, prekid, dvostruki klik i povraćaj.

TEHNOLOŠKI OKVIR

Od čega se sastoji pouzdanost

Forma bankePodaci kartice unose se na strani banke i ne stižu na Vaš server
Potpis zahtevaIznos i parametri zaštićeni su potpisom — ne mogu se menjati u pregledaču
Ključevi idempotentnostiPonovljen zahtev vraća raniji rezultat umesto nove transakcije
Red obaveštenjaObaveštenja gateway-a obrađuju se jedno po jedno i preživljavaju restart servera
Pozadinska proveraTransakcije bez konačnog statusa proveravaju se dok se ne razreše
Izveštaj usklađivanjaDnevno upoređivanje sa izvodom i spisak neslaganja

Ugovor o prihvatanju kartica i tarife su između Vas i banke. Mi odgovaramo za to da se novac i porudžbine poklapaju, a sporna situacija rešava po dnevniku, a ne po sećanju.

PITANJA

Šta se obično pita

Klijentu je dvaput skinut novac. Kako je to moguće?

Najčešće zbog nedostatka ključa idempotentnosti: korisnik je dvaput kliknuo ili je pregledač ponovio zahtev nakon prekida, pa su nastale dve transakcije. Ispravno rešenje nije sakriti dugme na sekundu, već omogućiti da ponovljeni zahtev sa istim ključem vrati raniju transakciju.

Šta sa „zaglavljenim“ plaćanjima?

Nastaju kada gateway ne odgovori na vreme, a ishod je na njegovoj strani već poznat. Takve transakcije označavamo kao neizvesne i povremeno tražimo status dok ne postane konačan. Bez tog mehanizma novac je skinut, a porudžbina neplaćena — i to se rešava ručno.

Treba li čuvati podatke kartica za ponovljena plaćanja?

Ne. Za ponovljena plaćanja banka izdaje token vezan za karticu: čuva se kod Vas umesto podataka i radi samo za Vaše transakcije. Sami brojevi kartica se na Vašem serveru ne pojavljuju, pa Vas obaveze čuvanja ne obavezuju.

Kako znati da je udeo odbijanja porastao?

Po dnevniku transakcija i njegovom praćenju. Svaki pokušaj se čuva zajedno sa kodom odgovora banke, pa se vidi ne samo „manje je plaćanja“, već i zašto: nedovoljno sredstava, ograničenje, neuspela potvrda. To su različiti problemi sa različitim rešenjima.

Može li se povezati više načina plaćanja odjednom?

Da, i to je uobičajeno: kartica, uplata po predračunu i pouzeće žive zajedno. Važno je da svaki način ima svoj lanac statusa: pouzeće se potvrđuje izveštajem kurirske službe, a ne izvodom banke, inače usklađivanje prestaje da se poklapa.