Atklāti sakot līdz šim ar FirstData maksājumu sistēmām nebiju saskāries, bet nu beidzot arī tiku iemēģināt kā tad ir uzkodēt sistēmu kura ļauj norēķināties ar kredītkartēm.
Ejot cauri instrukcijai sanāca iesprūst pie dažiem soļiem, lai tas viss pēc laika man neaizmirstos nolēmu to visu soli pa solim uzrakstīt arī šeit. Kā saka nošaut divus zaķus ar vienu šāvienu, gan jums noderēs, gan pašam ja piemirstās būs kur paskatīties.
Tātad ķeramies pie lietas….
Kad ir noslēgts līgums ar kādu no bankām un arī ar FirstData, tiek piešķirts unikāls tirgotāja id numurs jeb merchant id un tad tikai sākas visa jautrība.
Tātad pieņemsim, ka tika piešķirts šāds merchantId = 1234567(tas vienmēr ir septiņu ciparu skaitlis)
Jāsāk ar to, ka ir jāizveido SSL sertifikāts
Pirms sāc darbu būtu vēlams ielogoties FīrstData klientu lapā, adrese uz to tiek nosūtīta e-pastā kopā ar paroli. Tur sadaļā Downloads ir pieejams novilkšanai viss nepieciešamais. Konkrēti mums interesē saite
ECOMM Integrated Merchant Agent (IMA) package, jo te vienkopus ir salikts visnepieciešamais vienā failā EcommMerchant-2.09.9.zip.
Lai izveidotu SSL sertifikātu ir nepieciešama OpenSSL programma. Programmu var atrast iepriekšminētajā arhīvā. OpenSSL es instalēju uz C:/fd.
ZIP failā, ko novilki no FirstData ir mape CertificateGeneration\LV tur atradīsi failu openssl.cnf, kurš tev ir jāiekopē mapē C:/fd/GnuWin32/bin
Tālāk atver cmd un aizej uz C:/fd/GnuWin32/bin tad jāpalaiž SSL sertifikāta ģenerēšanas komanda. Lai komanda darbotos tev ir jāaizstāj mans merchabtId ar tavējo un vietā domain.lv jāievada savas mājaslapas adrese, kur atradīsies tava sistēma.
openssl req -newkey rsa:1024 -keyout 1234567_key.pem -out 1234567_req.pem -subj “/C=lv/O=domain.lv/CN=1234567” -outform PEM -config “C:/fd/GnuWin32/bin/openssl.cnf”
Komandas izpildes laikā tiks pieprasīts lai tu ievadīt paroli, piemēram, life15cool
Mapē C:/fd/GnuWin32/bin tika izveidoti divi faili 1234567_key.pem un 1234567_req.pem.
Atver failu 1234567_req.pem ar kādu teksta editoru, piemēram, notepad un nokopē tā saturu. Te ir pirmais āķis. Tekstu ir jāiezīmē precīzi, jo beigās ir kaut kāds linebreak, kuru nevajag iezīmēt. Vajag iezīmēt precīzi no pirmā simbola līdz pēdējam. Nokopēto tekstu iepeisto FirstData SSL sertifikātu parakstīšanas rīkā(tā pati lapa kur vilki zip failu) un norādi mailu uz kuru vēlies saņemt parakstītos sertifikātus.
Kad e-pastā esi saņēmis failus ECOMM.pem, 1234567.pem un 1234567_certificate_chain.p7.pem iemet tos visus tajā pat mapē, kur tika uzģenerēti pirmie divi sertifikāti, proti, C:/fd/GnuWin32/bin. Un tad palaid šīs divas komandas izmantojot OpenSSL kā aprakstīts iepriekš. Šeit arī tiks pieprasīta parole, manā gadījumā life15cool. Ievadi paroli precīzi. Es darīju tā ka to ierakstīju teksta failā un kad vajadzēja iekopēju komandrindā.
Tātad laižam šo komandu
openssl pkcs12 -export -in 1234567.pem -out 1234567_keystore.p12 –certfile ECOMM.pem -inkey 1234567_key.pem
un tad šo
openssl pkcs12 -in 1234567_keystore.p12 > 1234567_keystore.pem
Mapē C:/fd/GnuWin32/bin tiks izveidoti vēl sekojoši faili 1234567_keystore.p12, 1234567_keystore.pem
Viss, kas ir vajadzīgs ir fails keystore.pem to tad arī iemet uz servera un norādi config.php failā ceļu uz keystore.pem failu un neaizmirsti ielikt paroli kuru izmantoji ģenerējot sertifikātus.
Web aplikācijas konfigurēšana
Šeit es daudz neiedziļināšos tik vēlos piebilst, ka ir FirstData sistēmā ir jāaizpilda Merchant sadaļā esošie lauki. Silti iesaku PRECĪZI norādīt visus laukus, jo tos izmantos maksājumu sistēma, lai savienotos ar tavu sistēmu un pēc maksājuma korekti pārvirzītu lietotāju atpakaļ uz tavu sistēmu un ļaut tavai sistēmai izvadīt paziņojumu transakcijas statusu.
Kad esi notestējis savu sistēmu un viss strādā korekti ar testa datiem ir jāuzsāk pāreja produkcijas vidē.
Lai to paveiktu tev ir jāiziet testi kas atrodas FirstData sistēmas Test Plan sadaļā.
Transakcijai ir divi veidi SMS un DMS
- SMS – Veicot SMS transakciju, nauda no kartes īpašnieka konta tiek noņemta uzreiz.
- DMS – Veicot autorizācijas pieprasījumu, nauda kartes īpašnieka kontā tiek rezervēta (bloķēta). Lai ieskaitītu rezervēto piķi savā kontā izmanto funkciju makeDMSTrans()
Izvēlies sev tīkamāko un izpildi visus testa plānus atbilstoši transakcijas tipam izmantojot norādītos datus. Transakcijas vari apskatīt sadaļā Transactions, no kurienes tev būs jāizmanto transakcijas dati lai veiktu testu.
Kā viens no pēdējiem testa plāna uzdevumiem ir piešķilt dienas atskaiti lai tā ar crontab palīdzību palaižas katru dienu pusnaktī.
Tātad taisām crontabu. Jāpieslēdzas serverim uz kura hostējas lapa un jāievada sekojoša komanda
crontab –e
tiks atvērts fails tur iemetam šādu rindu
0 0 * * * php /var/www/html/test-shop/bd.php > /dev/null 2>&1
- 0 0 * * * – laiks cikos palaidīsies skripts
- php – sistēmas lietotājs kas palaiž skriptu
/var/www/html/test-shop/bd.php – ceļš uz pašu skriptu( skripts pieejams