Avatar billede KenniBL Nybegynder
18. oktober 2010 - 20:43 Der er 6 kommentarer og
1 løsning

Hjælp til Krak webservice udvikling

Hej Eksperter!

Jeg søger lidt hjælp til et konkret spørgsmål vedrørende Kraks webservice API, så jeg håber der er en person herinde der har forstand på det.

Mit helt store problem er, at deres dokumentation og eksempler er skrevet i ASP.NET og jeg selv programmerer i PHP.

Jeg har nedenstående script, der lader mig søge efter en person ud fra telefonnummer.

Jeg vil meget gerne have justeret scriptet, så den søger efter en virksomhed ud fra CVR-nummer i stedet.

<?
define('KRAK_USERNAME',  'Your Username' );
define('KRAK_PASSWORD',  'Your Password' );
define('KRAK_PRODUCTID',  'Your ProductID' );
define('KRAK_PHONENO',    'PhoneNo To Search For' );
define('KRAK_LOCALE', 'da-DK');
define('KRAK_NAMESPACE', 'http://webservice.krak.dk/');

// INI-Settings
ini_set('soap.wsdl_cache_enabled', 1);
ini_set('soap.wsdl_cache_dir', '/tmp');

// Get ticket
$param = array('userName' => KRAK_USERNAME, 'password' => KRAK_PASSWORD, 'locale' => KRAK_LOCALE);
$client = new SoapClient('http://login.webservice.krak.dk/ticketcentral.asmx?op=GetTicketByUser&wsdl');
$results = $client->__SoapCall('GetTicketByUser', array('parameters' => $param));

// Handle result from Krak [stdClass obj]
foreach ($results as $res) {
$ticket['ticket'] = $res->ticket;
$ticket['timeout'] = $res->timeout;
}

// Timeout [default:1800]
ini_set('soap.wsdl_cache_ttl', $result->timeout);

// Query
$rclient = new SoapClient('http://basicservices.webservice.krak.dk/telesearch.asmx?WSDL');
$ticket = array( 'ticket' => $ticket['ticket'], 'product' => KRAK_PRODUCTID, 'username' => KRAK_USERNAME);
$tele = array('telephoneNumber' => KRAK_PHONENO);

//Set Headers
$SoapHeader[] = new SoapHeader(KRAK_NAMESPACE, 'KrakSoapHeader', array('ticket' => $ticket['ticket']));
$SoapHeader[] = new SoapHeader(KRAK_NAMESPACE, 'KrakSoapHeader', array('product' => KRAK_PRODUCTID));
$SoapHeader[] = new SoapHeader(KRAK_NAMESPACE, 'KrakSoapHeader', array('username' => KRAK_USERNAME));

$rclient->__setSoapheaders($SoapHeader);


//Get Result
$objdata = $rclient->__soapCall('GetTeleByTn', array('parameters' => $tele));

//Show Result
foreach ($objdata as $data)
{
echo $data->Tele->CompanyName;
echo "\n";
echo $data->Tele->Address->RoadName. " " . $data->Tele->Address->HouseNumberNumericFrom;
echo "\n";
echo $data->Tele->Address->PostalCode;
echo "\n";
echo $data->Tele->Address->PostalDistrict;
echo "\n";
echo $data->Tele->ContactInfo->URL;
echo "\n";
echo $data->Tele->ContactInfo->TelephoneNumber;
}
?>

Jeg håber der er nogen der kan hjælpe med dette! Evt dokumentation fra Krak kan findes her, men det er som sagt med ASP.NET som eksempler:

http://www.krakinternet.dk/pdf/KrakWebserviceDokumentation_22.pdf

På forhånd mange tak!
Avatar billede znopie Nybegynder
18. oktober 2010 - 22:49 #1
Du skal vel bare kalde " GetCompanyByCVR " med et CVR nummer
Avatar billede KenniBL Nybegynder
18. oktober 2010 - 22:51 #2
Her...?

define('KRAK_PHONENO', 'PhoneNo To Search For' );
Avatar billede KenniBL Nybegynder
18. oktober 2010 - 22:52 #3
Det er der jeg på nuværende tidspunkt kalder informationer ud fra en privatpersons telefonnummer.

Jeg kan ikke finde nogen reference i dokumentationen til det - muligvis fordi jeg ikke forstår et klap af ASP.NET :-)
Avatar billede intenz Novice
19. oktober 2010 - 00:06 #4
Som jeg læser dit script og deres dokumentation, så kan du nøjes med at ændre herfra:

//Get Result
$objdata = $rclient->__soapCall('GetTeleByTn', array('parameters' => $tele));

Det er her du vælger metode (GetTeleByTn) og det/de parametre der skal med.
$tele har du sat til:
$tele = array('telephoneNumber' => KRAK_PHONENO);

Så hvis du i stedet vil have et CVR nummer ud, skal du kalde den rigtige metode (GetCompanyByCVR, ud fra dokumentationen s. 14 - det ville være rart hvis de gad sætte sidetal på...).

Paramtrene kan du så sætte til:
$cvr = array('CVRNumber' => '12345678');

Parameter navnet er også i dokumentationen, sammen med metoden.
Jeg ved ikke om den vil have nummeret som string eller int, prøv evt. uden '' hvis det ikke virker.

Samlet kan du under //Get Result prøve:

$cvr = array('CVRNumber' => '12345678');
$objdata = $rclient->__soapCall('GetCompanyByCVR', $cvr);
// check output
print "<pre>";
var_dump($objdata);
print "</pre>";
Avatar billede intenz Novice
19. oktober 2010 - 00:14 #5
Lidt off-topic.
Af ren nysgerrighed, hvad koster det at bruge KRAK's API?
Avatar billede KenniBL Nybegynder
19. oktober 2010 - 01:27 #6
Selvfølgelig intenz! Tænk at jeg selv overså det!

Mange tak for hjælpen :-)

Angående priser, så er de her...

1) Årligt driftsgebyr kr. 1.800,00
2) Årlige antal forespørgsler 0 til 2.000 andragende kr. 1.000,00
3) Årlige antal forespørgsler 2.000 til 4.000 andragende kr. 1.600,00
4) Årlige antal forespørgsler 4.000 til 8.000 andragende kr. 2.400,00
f.eks. 1 + 3 andrager årligt kr. 3.400,00 ekskl. moms.
Avatar billede intenz Novice
19. oktober 2010 - 09:05 #7
Så lidt :)

Tak for info om priserne :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester