Autor | Zpráva | ||
---|---|---|---|
simeon Profil |
EDIT: Je tam tajný prvok storekey, ale aj tak je to také nejaké čudné, že sa používa obyčajné POST.
Dobrý deň, e Card VÚB je služba virtuálneho pos terminálu (všeobecné informácie: www.vub.sk/sk/firmy-podnikatelia/ucty-sluzby/platby/ecommerce-pre-obchodnikov/e-card-vub). Požiadal som ich o zaslanie integračného manuálu, ktorý, ako celok, zverejňovať nebudem, ale vypíšem z neho podstatné informácie. Využívam PHP vzor. Platba kartou funguje tak, že obchodník vytvorí html formulár s hidden inputmi. Escapuje dáta a vytvorí z nich hash, ktorý tiež vloží do formulára. Formulár s dátami sa odošle do platobnej brány. jsfiddle.net/kgv9fcva V dokumente sa píše: Ak je transakcia úspešná, obchodník bude presmerovaný na adresu okUrl, ktorá je do platobnej brány odoslaná v kroku 2. Všetky parametre, ktoré obchodník poslal, sa vrátia späť obchodníkovi. Okrem parametrov obchodníka brána vráti aj parametre odpovede transakcie a parametre odpovede MPI (súvisiace s postupom bezpečnej transakcie 3D), ktoré sú uvedené v prílohe A. Príloha A obsahuje rozpísané parametre odpovede transakcie (teda čo všetko bude v $_POST na okUrl (stránka obchodníka) okrem vstupných parametrov). Medzi nimi sú aj parametre ako: mdStatus - Kód stavu transakcie 3D 1=overená transakcia 2, 3, 4 = Karta neparticipuje alebo pokus 5,6,7,8 = Overenie nie je k dispozícii alebo chyba systému 0 = Overenie bolo neúspešné Response - Stav platby Možné hodnoty: „Approved“, „Error“, „Declined“ Vzor stránky okUrl vyzerá takto: jsfiddle.net/cfpjc3g0 Čiže tento skript porovnáva hash, ktorý dostal v $_POST od platobnej brány s hashom, ktorý vytvoril. Ak sú rovnaké, tak ak je mdStatus rovný 1, vyhodnotí skript platbu ako autorizovanú a obchodník, spoľahnúc sa na tento systém, odošle, napríklad, objednaný tovar. Už rozumiete, prečo mám obavu? Na prvej stránke s hidden inputmi si viem všetky dáta pozrieť a vytvoriť si vlastný formulár na okUrl s tým, že mdStatus nastaví na 1. Niečo ako: <form method="post" action="http://obchodnik.sk/okUrl.php"> <input type="hidden" name="clientid" value="..."> <input type="hidden" name="amount" value="..."> <input type="hidden" name="oid" value="..."> <input type="hidden" name="okurl" value="http://obchodnik.sk/okUrl.php"> <input type="hidden" name="failUrl" value="..."> <input type="hidden" name="trantype" value="..."> <input type="hidden" name="instalment" value="..."> <input type="hidden" name="MERCHANTSAFEAUTHTYPE" value="..."> <input type="hidden" name="MERCHANTSAFEKEY" value="..."> <input type="hidden" name="currency" value="..."> <input type="hidden" name="rnd" value="..."> <input type="hidden" name="hash" value="..."> <input type="hidden" name="storetype" value="3d_pay_hosting"> <input type="hidden" name="hashAlgorithm" value="ver2"> <input type="hidden" name="lang" value="sk"> <!-- tri bodky (...) nahrádzajú získané údaje --> <input type="hidden" name="mdStatus" value="1"> <input type="hidden" name="Response" value="Approved"> <!-- informácie, na základe ktorých obchodník vyhodnotí platbu ako autorizovanú --> <input type="submit" value="I am a clever thief"> </form> Alebo sa mýlim? Vďaka za Váš čas a prípadné pripomienky. |
||
David1234 Profil * |
#2 · Zasláno: 26. 8. 2016, 14:49:14
No a co jiného by jsi chtěl využít pro odeslání dat místo metody POST?
|
||
Joker Profil |
#3 · Zasláno: 26. 8. 2016, 17:00:23
simeon:
„Na prvej stránke s hidden inputmi si viem všetky dáta pozrieť a vytvoriť si vlastný formulár na okUrl s tým, že mdStatus nastaví na 1“ Čemu to vadí? I kdyby to tam nebylo, údaje o nákupu ve stránce být musí, údaje odpovědi jsou ve specifikaci API a okUrl se dá zjistit po jednom úspěšném nákupu z prohlížeče. |
||
Keeehi Profil |
#4 · Zasláno: 26. 8. 2016, 19:31:44
A není ten hash o kterém píšeš nějaký speciální hash? Protože jsou takové, k jejichž vytvoření potřebuješ znát nějakou tajnou informaci. Když se na takové tajné informaci dohodneš s druhou stranou, můžeš ověřit, že ten hash skutečně vytvořila ona.
Pak je tu ještě druhý přístup. Po té, co ti přijde návštěvník na okUrl mu hned zboží neposíláš, ale připojíš se na API té platební služby a podle nějakého identifikátoru (což může být třeba ten hash) si ověříš status objednávky. |
||
Časová prodleva: 8 let
|
0