Anzeige

 IXR Library und SSL


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Sprint

Erfahrenes Mitglied
#1
Hallo zusammen,

da wir sehr viel mit ausländischen Firmen zu tun haben, wurden deren UID Nummern immer über die XML-RPC Schnittstelle vom BZSt. abgefragt. Das geht aber seit heute nicht mehr. In einem Hinweis auf der Seite heißt es lapidar "Bitte stellen Sie Ihre Abfragen ab dem genannten Zeitpunkt nur noch über HTTPS (TLS1.2)".

Unsere Seite ist aber schon seit Jahren abgesichert und auch die Schnittstelle wurde über https:// Aufrufe angesprochen!?

In der SSL-bezogenen Funktion in der Lib kann man zwar separate Cert, CA und Key Files angeben und die bekäme ich auch, allerdings widerstrebt es mir, das Keyfile selbst auf den Server zu legen. Dann kann auch noch ein Kennwort zum Entsperren des privateKey angegeben werden. Nur wo kriege ich das her??? Und könnte das wirklich helfen?

Hat jemand damit schon Erfahrungen und kann mir sagen, wie ich die wieder zum Laufen kriege?

Vielen Dank schon mal im Voraus,
Sprint

Edit: Bei der Schnittstellenbeschreibung ist ein Beispiel für eine Abfrage über HTTP:

HTML:
https://evatr.bff-online.de/evatrRPC?UstId_1=DE123456789&UstId_2=AB1234567890 
&Firmenname=Firmenname einschl. Rechtsform&Ort=Ort der Firma&PLZ=12345&Strasse=Strasse der Firma 
&Druck=nein
Wenn ich das über den Browser abschicke, bekomme ich korrekt einen XML String als Antwort.

Wenn ich das ganze über PHP laufen lasse:
PHP:
$client = new IXR_Client('https://evatr.bff-online.de/');
if (!$client->query('evatrRPC',
                    $duid['uid'],
                    $uiddaten['uid'],
                    $sende_firmenname,
                    $uiddaten['ort'],
                    $uiddaten['plz'],
                    $uiddaten['strasse'],
                    'nein'))
    $antwort = $client->getErrorCode().":".$client->getErrorMessage();
else
    $antwort = $client->getResponse();
bekomme ich die Meldung "-32300:transport error - could not open socket".

Wenn es über HTTP geht, sollte das Problem doch eher in der Library zu finden sein, oder? Damit könnte ich mir den o.g. Weg über die Zertifikatdateien usw. wohl sparen, denn die sind ja bei einem Aufruf über den Browser ja definitiv nicht da.

Gibt es denn eine Möglichkeit, ohne die IXR Library den Aufruf zu erstellen und die Antwort abzufangen?
 
Zuletzt bearbeitet:

Sprint

Erfahrenes Mitglied
#5
Kein Problem.
PHP:
$data = array(
    'UstId_1'=>$duid['uid'],
    'UstId_2'=>$uiddaten['uid'],
    'Firmenname'=>$sende_firmenname,
    'Ort'=>$uiddaten['ort'],
    'PLZ'=>$uiddaten['plz'],
    'Strasse'=>$uiddaten['strasse'],
    'Druck'=>'nein'
);

$string = http_build_query($data, '&');

$antwort = urlRequest('https://evatr.bff-online.de/evatrRPC', 'Mozilla/5.0 (X11; Ubuntu; Linux x86; rv:28.0) Gecko/20100101 Firefox/28.0', true, '', $string);

function urlRequest($url, $setUserAgent=false, $usePost=false, $additionalHeaders='', $content='') {
    return file_get_contents($url, false, stream_context_create(array('http' => array('method' => (($usePost) ? 'POST' : 'GET'), 'header' => "User-Agent: ".(($setUserAgent) ? $setUserAgent : $_SERVER['HTTP_USER_AGENT'])."\r\n"."Content-Type: application/x-www-form-urlencoded;charset=UTF-8\r\n".$additionalHeaders, 'content' => $content))));
}
So läuft es bei mir genauso wie vor der Umstellung. Wenn es bei dir auch um das BZSt. geht, paß bei den Statuscodes auf. die haben sich vor einigen Monaten nämlich etwas geändert.
 
#6
Kein Problem.

So läuft es bei mir genauso wie vor der Umstellung. Wenn es bei dir auch um das BZSt. geht, paß bei den Statuscodes auf. die haben sich vor einigen Monaten nämlich etwas geändert.
Super, vielen Dank. So funktioniert es. Nur leider bekommt man als Antwort den ganzen String zurück. Wie hast Du denn da den ErrorCode einzeln ausgelesen?
 

Sprint

Erfahrenes Mitglied
#7
Wenn du die Abfragen als qualifizierte Abfragen aufheben willst, mußt du sowieso den ganzen String speichern. Aber das ist ja nur ein ganz einfacher XML Text. Der muß nur noch geparst werden und schon hast du ein Array mit alles Werten.

Den Status allein wirst du vermutlich nicht bekommen. Wird dir aber auch nicht viel helfen, da meines Wissens nach nur die komplette qualifizierte Abfrage mit ALLEN Daten auch von den Finanzbehörden anerkannt wird. Wir erleben hier von unseren Kunden diesbezüglich Sachen, die massive Zweifel an dem generellen Vorhandensein von Intelligenz auf diesem Planeten aufkommen lassen. ;)
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Anzeige
Anzeige