Pregledavajući usluge koje nudi veb-servis NBS, naišao sam na uslugu koja se zove "registar podataka o imalacu računa". Ti podaci obuhvataju PIB, matični broj, naziv, adresu, mesto kao i broj bankovnog računa. NA žalost, ovaj servis vraća podatke samo ako je parametara unesen apsolutno identično kao što je u bazi, tako da je praktično moguće vršiti pretragu samo po PIB-u i matičnom broju. Stoga sam i napravio stranicu koja na osnovu bar jednog od ova dva podatka ispisuje ostale podatke o privrednom subjektu.
Kao i sve ostale usluge ovog servisa, ova usluga je ovaj dostupna samo pravnim licimakoji su registrovani za usluge ovog servisa. Više o ovome možete pročitati u blogu pod nazivom Veb servis Narodne Banke Srbije, kao i na samom sajtu NBS.
Obzirom da se Veb-servis NBS zasniva na SOAP protokolima koji imaju stroga i komplikovana pravila za kreiranje zahteva koristio sam, uz nezaobilazni PHP i NUSOAP skriptu koja znatno olakšava ovaj posao. Stoga je potrebno skinuti ovu skriptu klikom na ovaj link i nakon raspakivanja arhive fasciklu sa nazivom "lib" kopirati na istu lokaciju u okviru web sajta gde će biti i stranica sa kodom.
Nakon toga potrebno je downloadovati web stranucu sa nazivom "pib.php" i postaviti je na istu lokaciju gde ste postavili fasciklu sa nazivom "lib". U samom kodu web stranice potrebno je uneti podatke koje ste dobili od strane NBS nakon registracije na servis (username,password i licenceid). Na stranici je napravljena forma za unos i PIB-a i matičnog broja, a za dobijanje podataka dovoljan je i samo jedan od njih.
Naravno uz malo poznavanje CSS-a možete prilagoditi izgled prikaza podataka u skladu sa vašim potrebama.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="pib.php" method="post" enctype="multipart/form-data"/>
<input type="text" name="pib" /><label> PIB</label><br><br>
<input type="text" name="mb" /><label> Matični broj</label><br><br>
<input type="submit" name="podaci" value="pošalji" />
</form>
<?php
//*****************************************************************************
//
// Naziv PHP scripte: PRETRAGA PODATAKA O IMAOCIMA RAČUNA NBS
// (Narodna banka Srbije) - SOAP protokol
//
// Autor: Josip Kopestinskij, http://webdizajniprogramiranje.rs
//
// Više o kodu možete pročitati na
// http://webdizajniprogramiranje.rs/web-servisi-nbs-php-soap-imaoci-racuna
//
// Kod je slobodan za korišćenje uz obavezu navođenja izvora.
//
//*****************************************************************************
// obrada posta o podacima
if($_POST['pib']!=""){
$pib=($_POST['pib']);
}else{
$pib='';
}
if($_POST['mb']!=""){
$mb=($_POST['mb']);
}else{
$mb='0';
}
// pozivanje nusoap skripte
require_once('lib/nusoap.php');
// postavljanje vrednosti ostalih parametara zahteva
$bank = '0';
$account = '0';
$control = '0';
$city = '';
$start = '1';
$end = '100';
// podaci potrebni za prijavu na servis: korisnicko ime, lozinka i licenca
$login_username = '**************';
$login_password = '**************';
$login_licenceid = '00000000-0000-0000-0000-000000000000';
// lokacija WDSL servisa i NameSpace
$soap_wsdl = "https://webservices.nbs.rs/CommunicationOfficeService1_0/CompanyAccountXmlService.asmx?WSDL";
$soap_namespace = "http://communicationoffice.nbs.rs";
// pravljenje klijenta
$soap_client = new nusoap_client($soap_wsdl, true);
// potrebno je isključiti dekodiranje utf8 karaktera da bi smo imali naša slova (kodiranje html stranice mora mora biti u utf formatu)
$soap_client->decode_utf8 = 0;
// dodavanje autentifikacije u header
$header =
'<AuthenticationHeader xmlns="' . $soap_namespace . '">
<UserName>' . $login_username . '</UserName>
<Password>' . $login_password . '</Password>
<LicenceID>' . $login_licenceid . '</LicenceID>
</AuthenticationHeader>';
$soap_client->setHeaders($header);
// kreiranje parametara za zahtev
$parametri = array('nationalIdentificationNumber'=>$mb,'taxIdentificationNumber'=>$pib,'bankCode'=>$bank,'accountNumber'=>$account,'controlNumber'=>$control,'companyName'=>$company,'city'=>$city,'startItemNumber'=>$start,'endItemNumber'=>$end);
// slanje zahteva
$soap_rezultat = $soap_client->call ('GetCompanyAccount', $parametri);
// rezultati
$xml_rezultat=$soap_rezultat['GetCompanyAccountResult'];
$xml_rezultat=simplexml_load_string($xml_rezultat);
$nbs_naziv = $xml_rezultat->CompanyAccount->CompanyName;
$nbs_adresa = $xml_rezultat->CompanyAccount->Address;
$nbs_mesto = $xml_rezultat->CompanyAccount->City;
$nbs_maticni = $xml_rezultat->CompanyAccount->NationalIdentificationNumber;
$nbs_pib = $xml_rezultat->CompanyAccount->TaxIdentificationNumber;
// ispis rezultata
echo '<br><br><br>';
echo $nbs_naziv.'<br>';
echo $nbs_adresa.'<br>';
echo $nbs_mesto.'<br>';
echo $nbs_maticni.'<br>';
echo $nbs_pib.'<br>';
?>