Antwort #9 am: 05. August 2011, 20:40:21
Hallo Zusammen,
kann es sein, dass die nur noch XML-RPC akzeptieren als Anfrage?
Ich hatte mal was dafür geschrieben weiß jedoch nicht ob man das so einfach einbauen kann da die XML-RPC Klasse unter einer Lizenz steht...
Hier mal das was man ändern kann.
In der "/includes/classes/vat_validation.php" in Z.905 bis 986 das:
// Live Check überprüft die USTid beim Bundesamt für Finanzen function live
($abfrage_nummer) { $eigene_nummer = STORE_OWNER_VAT_ID
; /* Hier wird der String für den POST per URL aufgebaut */ $ustid_post = "eigene_id=".$eigene_nummer."&abfrage_id=".$abfrage_nummer.""; /* Zur Verbindung mit dem Server wird CURL verwendet */ /* mit curl_init wird zunächst die URL festgelegt */ $ch = curl_init("http://wddx.bff-online.de//ustid.php?".$ustid_post.""); /* Hier werden noch einige Parameter für CURL gesetzt */ curl_setopt($ch, CURLOPT_HEADER
, 0); /* Header nicht in die Ausgabe */ curl_setopt($ch, CURLOPT_NOBODY
, 0); /* Ausgabe nicht in die HTML-Seite */ curl_setopt($ch, CURLOPT_RETURNTRANSFER
, 1); /* Umleitung der Ausgabe in eine Variable ermöglichen */ /* Aufruf von CURL und Ausgabe mit WDDX deserialisieren */ $des_out = wddx_deserialize(curl_exec($ch)); curl_close($ch); /* Die deserialisierte Ausgabe in ein Array schreiben */ while (list ($key, $val) = each($des_out)) { $ergebnis[$key] = $val; } if ($ergebnis[fehler_code
] == '200') { return 1; } elseif ($ergebnis[fehler_code
] == '201') { return 0; } elseif ($ergebnis[fehler_code
] == '202') { return 0; } elseif ($ergebnis[fehler_code
] == '203') { return 0; } elseif ($ergebnis[fehler_code
] == '204') { return 0; } elseif ($ergebnis[fehler_code
] == '205') { return 9; } elseif ($ergebnis[fehler_code
] == '206') { return 9; } elseif ($ergebnis[fehler_code
] == '207') { return 9; } elseif ($ergebnis[fehler_code
] == '208') { return 9; } elseif ($ergebnis[fehler_code
] == '209') { return 0; } elseif ($ergebnis[fehler_code
] == '210') { return 0; } elseif ($ergebnis[fehler_code
] == '666') { return 9; } elseif ($ergebnis[fehler_code
] == '777') { return 9; } elseif ($ergebnis[fehler_code
] == '888') { return 9; } elseif ($ergebnis[fehler_code
] == '999') { return 9; } else { return 9; } } // end function Live ersetzen mit dem:
// Live Check überprüft die USTid beim Bundesamt für Finanzen function live
($abfrage_nummer) { include("class.ixr_library.php");// $client = new IXR_Client('http://evatr.bff-online.de'); // ohne SSL $client = new IXR_Client
('https://evatr.bff-online.de'); // mit SSL $UstId_1 = STORE_OWNER_VAT_ID
; $UstId_2 = $abfrage_nummer; $Firmenname = ''; $Ort = ''; $PLZ = ''; $Strasse = ''; $Druck = ''; if (!$client->query('evatrRPC', $UstId_1, $UstId_2, $Firmenname, $Ort, $PLZ, $Strasse, $Druck)) { $error_code = $client->getErrorCode(); } else { $phpvars = xmlrpc_decode ($client->getResponse()); $error_code = $phpvars[3]; // Error Code steht an 4ter Stelle in XML-RPC Antwort } // Ergebnis auswerten if ($error_code == '200') { return 1; // Die angefragte USt-IdNr. ist gültig. } elseif ($error_code == '201') { return 0; // Die angefragte USt-IdNr. ist ungültig. } elseif ($error_code == '202') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie ist nicht in der Unternehmerdatei des betreffenden EU-Mitgliedstaates registriert. } elseif ($error_code == '203') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie ist erst ab dem ... gültig (siehe Feld 'Gueltig_ab'). } elseif ($error_code == '204') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie war im Zeitraum von ... bis ... gültig (siehe Feld 'Gueltig_ab' und 'Gueltig_bis'). } elseif ($error_code == '205') { return 9; // Ihre Anfrage kann derzeit durch den angefragten EU-Mitgliedstaat oder aus anderen Gründen nicht beantwortet werden. Bitte versuchen Sie es später noch einmal. Bei wiederholten Problemen wenden Sie sich bitte an das Bundeszentralamt für Steuern - Dienstsitz Saarlouis. } elseif ($error_code == '206') { return 9; // Ihre deutsche USt-IdNr. ist ungültig. Eine Bestätigungsanfrage ist daher nicht möglich. Den Grund hierfür können Sie beim Bundeszentralamt für Steuern - Dienstsitz Saarlouis - erfragen. } elseif ($error_code == '207') { return 9; // Ihnen wurde die deutsche USt-IdNr. ausschliesslich zu Zwecken der Besteuerung des innergemeinschaftlichen Erwerbs erteilt. Sie sind somit nicht berechtigt, Bestätigungsanfragen zu stellen. } elseif ($error_code == '208') { return 9; // Für die von Ihnen angefragte USt-IdNr. läuft gerade eine Anfrage von einem anderen Nutzer. Eine Bearbeitung ist daher nicht möglich. Bitte versuchen Sie es später noch einmal. } elseif ($error_code == '209') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht dem Aufbau der für diesen EU-Mitgliedstaat gilt. } elseif ($error_code == '210') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht den Prüfziffernregeln die für diesen EU-Mitgliedstaat gelten. } elseif ($error_code == '211') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie enthält unzulässige Zeichen. } elseif ($error_code == '212') { return 0; // Die angefragte USt-IdNr. ist ungültig. Sie enthält ein unzulässiges Länderkennzeichen. } elseif ($error_code == '213') { return 0; // Die Abfrage einer deutschen USt-IdNr. ist nicht möglich. } elseif ($error_code == '214') { return 0; // Ihre deutsche USt-IdNr. ist fehlerhaft. Sie beginnt mit 'DE' gefolgt von 9 Ziffern. } elseif ($error_code == '215') { return 9; // Ihre Anfrage enthält nicht alle notwendigen Angaben für eine einfache Bestätigungsanfrage (Ihre deutsche USt-IdNr. und die ausl. USt-IdNr.). Ihre Anfrage kann deshalb nicht bearbeitet werden. } elseif ($error_code == '216') { return 9; // Ihre Anfrage enthält nicht alle notwendigen Angaben für eine qualifizierte Bestätigungsanfrage (Ihre deutsche USt-IdNr., die ausl. USt-IdNr., Firmenname einschl. Rechtsform und Ort). Es wurde eine einfache Bestätigungsanfrage durchgeführt mit folgenden Ergebnis: Die angefragte USt-IdNr. ist gültig. } elseif ($error_code == '217') { return 9; // Bei der Verarbeitung der Daten aus dem angefragten EU-Mitgliedstaat ist ein Fehler aufgetreten. Ihre Anfrage kann deshalb nicht bearbeitet werden. } elseif ($error_code == '218') { return 9; // Eine qualifizierte Bestätigung ist zur Zeit nicht möglich. Es wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis durchgeführt: Die angefragte USt-IdNr. ist gültig. } elseif ($error_code == '219') { return 9; // Bei der Durchführung der qualifizierten Bestätigungsanfrage ist ein Fehler aufgetreten. Es wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis durchgeführt: Die angefragte USt-IdNr. ist gültig. } elseif ($error_code == '220') { return 9; // Bei der Anforderung der amtlichen Bestätigungsmitteilung ist ein Fehler aufgetreten. Sie werden kein Schreiben erhalten. } elseif ($error_code == '999') { return 9; // Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich. Bitte versuchen Sie es später noch einmal. } else { return 9; // Sonstiges... } } // end function Live Zusätzlich müsste man dann wie bereits erwähnt diese Klasse:
http://scripts.incutio.com/xmlrpc/runter laden und in class.ixr_library.php umbenennen und in den Ordner includes/classes/ kopieren.
Vielleicht gibt es da auch andere Lösungen um XML-RPC aus zu lesen.
Viele Grüße
Franky