Pangalink 30 minutiga

Jaanus Putting
RSS: Jaga:

Kui vajad abi pangalingi jaoks sertifikaadi genereerimisel – siis kasuta meie kaupmehe salajase võtme ja sertifikaadi generaatorit pangalinkide jaoks (testitud ja toimib – seisuga 2016 suvi).

Veebi kaudu maksmine on muutumas üha igapäevasemaks. Automaatne, mugav ja kaupmehe sekkumiseta üle veebi toimiv makselahendus on populaarsust kogumas ning sellest annavad tunnistust ka meie klienditoele üha rohkem laekuvad küsimused “Kas teie server toetab pangalinki?” või “Kuidas ma saaks omale pangalingi installeerida?”.

Saladuskatte all võib mainida, et jah, meie serverid toetavad pangalinki 🙂

Pangalink on süsteem, mille abil saavad Internetikaupmehed, Panga kliendid ja Pank vahetada andmeid, osutada teenuseid ja käivitada tegevusi.

Pangalink võimaldab kokkulepitud vormis, etteantud parameetritega, alustada tegevusi ja saada vastuseid.

Pangalingi tehniline lahendus on samasugune nii Swedbank-i, Sampo kui ka SEB puhul.

Pangalingi toimima saamiseks on vaja:

  1. Sertifikaadi päringut + privaatset võtit
  2. Lepingut pangaga ning unikaalset kaupmehe koodi (mis antakse panga poolt peale lepingu sõlmimist)
  3. Pangalingi programmi, mis oskab andmeid kokkulepitud pangalingi protokolli panna, et neid panka saata ning panga poolt saadetud vastuseid lugeda.

Järgnevalt siis veidi lähemalt esimese ja kolmanda punkti kohta.

Sertifikaadi päring + privaatne võti

Sertifikaadi päring, mis sisaldab avalikku võtit ning selle juurde kuuluv privaatne võti moodustavad asümmeetrilise krüptograafia vormi, mille abil kõik andmed, mis krüpteeritakse või signeeritakse privaatse võtmega, on loetavad või kontrollitavad ainult vastava avaliku võtmega. Privaatset võtit ei tohi teada ega omada keegi muu, kui ainult see isik, kes selle privaatse ja avaliku võtmepaari omale teinud on. Avalikku võtit tohivad teada ka teised isikud. Kui privaatne võti lekib, siis on võtme omajal võimalik andmeid võltsida. Pangalingi puhul on kaupmehe privaatse võtme omanikul võimalik panka saadetavaid andmeid võltsida ning panga privaatse võtme omajal võimalik pangast tulevaid vastuseid võltsida.

Pangalingi puhul on nii kaupmehel kui ka pangal oma privaatse+avaliku võtmepaar. Lepingu sõlmimisel annab kaupmees pangale oma avaliku võtme (sertifikaadi päringu faili näol) ning pank kaupmehele oma avaliku võtme.

Kui kaupmees hakkab pangalinki kasutama ning tehinguid panka saatma, siis saadab ta iga tehinguga kaasa ka kontrollsumma ehk signatuuri. Pank kontrollib seda kaupmehe avaliku võtmega ning kui see signatuur pole loodud kaupmehe privaatse võtme abil (millele ainult sellel kaupmehel ligipääs tohib olla), siis pole tegemist õige kaupmehega vaid keegi pahalane üritab näiteks kaupmehe nime alt midagi kahtlast korda saata. Samamoodi, kui tuleb pangast päring kaupmehele, siis genereerib pank saadetud andmetele kontrollsumma ning signeerib selle oma privaatse võtmega. Kaupmees kontrollib signatuuri samamoodi panga avaliku võtme abil ning kui signatuur pole õige, siis on tegemist näiteks ründega veebipoe pihta.

Võtmeid saab luua openssl utiliidi abil, kuid Zone kliendil on lihtsam seda teha DataZone haldusliidese kaudu. Seal tuleb täita lihtsalt sertifikaadi päringu jaoks vajalik personaalne informatsioon ning seejärel saab genereeritud failid alla laadida. NB! Privaatset võtmefaili ei tohi kindlasti kellelegi teisele kättesaadavaks teha!

Privaatse võtmefail näeb seest välja selline:

Sertifikaadi päringu fail näeb seest välja selline:

Mõlemad failid on PEM vormingus, mis tähendab seda, et nende sisu on BASE64 kodeeringus ning pandud “—–BEGIN …—–” ja “—–END …—–” märgendite vahele.

Pangalingi programm

Zone serverid toetavad PHP-d ning OpenSSL moodulit. Nendest kahest piisab täiesti, et pangalink tööle saada ning ühtegi muud välist programmi vaja pole.

Meisterdasin näiteks hästi lihtsa pangalingi skriptikese (tegelikult koosneb see küll kolmest erinevast failist), mis signeerib tehingu andmed, koostab pangalingi vormi ning loeb ja kuvab pangast tulnud vastuse.

Programm koosneb siis kolmest failist:

  • pay.php – Peamine fail, mis käivitatakse tehingu algatamiseks
  • notify.php – Käivitub pangast tuleva teate vastu võtmiseks
  • config.php – Üldine fail seadistustega, mis on ühised nii pay.php kui ka notify.php puhul

Siit saab tõmmata ka kõik need kolm faili ühtse TARGZ arhiivina.

Skriptide testimiseks sobib hästi Andris Reinmani poolt loodud www.pangalink.net testkeskkond (enam ei toimi). Lisaks pakub eraldi testsüsteemi võimalust ka näiteks SEB. Peale keskkonnale ligipääsu saamist tuleb config.php failis $preferences massiivis muuta atribuute:

  • my_private_key – sinu privaatse võtmefaili asukoht. NB! See fail ei tohi olla veebi kaudu kättesaadav!
  • bank_certificate – panga avaliku võtmefaili asukoht
  • my_id – panga poolt sulle antud kaupmehe identifikaator
  • account_number – pangakonto, kuhu maksed hakkavad laekuma
  • account_owner – pangakonto omaniku nimi
  • bankname – ‘swedbank’, ‘seb’ või ‘sampo’

Kui pangalink on tööle saadud ning toimib, siis siit edasi võiks kaupmees mõelda juba oma veebipoe turvamise peale. Selleks tuleks veebipood tööle panna üle krüpteeritud ühenduse – HTTPS. Kasutades HTTPSi näitab kaupmees oma kliendile, et ta pöörab turvalisusele tähelepanu ning äratab kliendi silmis suuremat usaldust.

HTTPSi saab Zone virtuaalserveris tööle panna lihtsalt. Selleks on vaja meie klienditoe kaudu tellida pakett III koos eraldi IP aadressiga (kui seda veel pole) ning seejärel teha DataZone haldusliideses paar klikki HTTPSi aktiveerimiseks.

Populaarsed postitused

Kuidas Helikuju.ee esimene koduleht sai valmis vähem kui tööpäevaga

Helikuju.ee koduleht valmis välgukiirusel

Lemme Suve
Kui oled ettevõtja või loomeinimene, kes on kodulehe tegemist pikalt edasi lükanud, siis see lugu on just sulle. Oma kogemust jagab helidisaini agentuur...
Produktize.eu:  kuidas ehitada rahvusvahelist usaldusväärsust ja kasvatada turgu .EU domeeniga

Produktize.eu: kuidas ehitada rahvusvahelist usaldusväärsust ja kasvatada turgu .EU domeeniga

Nikita Tikhomirov
Eesti ärimaastikul tõusevad esile ettevõtted, kes ei piirdu vaid kohaliku turu teenindamisega, vaid mõtlevad suuremalt – sihtturgudele, brändi kuvandile...
Partner soovitab: Kuidas luua koduleht, mis kõnetab ideaalset klienti

Partner soovitab: Kuidas luua koduleht, mis kõnetab ideaalset klienti

Cathy Kask, Celeht.ee
Kas oled vahel tundnud, et su koduleht ei peegelda sind ega sinu ettevõtet? Nii palju on öelda, nii palju võimalusi – kuid lõpuks jääd siiski omaenda...
Xdebug seadistamine Zone veebimajutuses: PhpStorm

Xdebug seadistamine Zone veebimajutuses: PhpStorm

Arne Meier
Varasemalt on Zone blogis olnud juttu Xdebug kasutamisest nii Sublime Texti kui ka Visual Studio Code baasil. Kui eelmised näited käsitlevad seadistamist...