Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Kundenneuanlage mit UStID schlägt fehl

    ostermann

    • Fördermitglied
    • Beiträge: 124
    • Geschlecht:
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #15 am: 14. August 2011, 13:10:00
    Dokuman: Dein Link funktioniert nicht. Ob die Abfrage über das BM oder über die EU läuft, ist mir im Prinzip egal. Ich könnte mir vorstellen, dass die deutsche Seite etwas zuverlässiger läuft, aber sicher bin ich mir da nicht. Ich sehe vor allem aber keinen Sinn darin, dass jetzt jeder für sich in seinem Shop eine Anpassung macht. Meiner Meinung nach ist das eine wichtige Shopfunktion und sollte daher in 1.06 behoben/enthalten sein.

    Mit freundlichen Grüßen
    Thorsten Ostermann
    Trade Republic - Provisionsfrei Aktien handeln

    Justus78

    • Neu im Forum
    • Beiträge: 12
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #16 am: 15. August 2011, 16:22:50
    @franky_n

    Bin Neuling mit modified eCommerce Shopsoftware. Dein Beitrag macht mir Hoffnung, denn für meinen xtmc Shop mit sehr vielen Kunden aus der EU wäre das sehr wichtig.
    Habe die Modifikationen in vat_validation.php vorgenommen und ixr_library.php ins gleiche Verzeichnis kopiert. Zusätzlich die ixr Datei kopiert in "class.ixr_library.php" und upgeloaded.
    Die Validierung klappt leider trotzdem nicht:

    Fehlermeldung nach Eingabe der VAT-ID:

    Code: PHP  [Auswählen]
    Fatal error: Call to undefined function xmlrpc_decode() in /mnt/web3/22/27/5563127/htdocs/shop/includes/classes/vat_validation.php on line 944

    Entsprechender Code:
    Code: PHP  [Auswählen]
      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

    Wobei Zeile 944 folgende ist:

    Code: PHP  [Auswählen]
          $phpvars = xmlrpc_decode ($client->getResponse());

    Bei Dir hat es, wie Du schreibst, geklappt, was mache ich falsch?
    Habe bereits das alles gemacht: Erbitte Hilfe bei VAT-Check

    Vielen lieben Dank für jede Hilfe.

    Jivi Minetti

    • Frisch an Board
    • Beiträge: 65
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #17 am: 18. August 2011, 03:29:22
    So jetzt ist es offiziell (ich wollte das nur nochmal nachliefern):

    Zitat
    Seit dem 01.03.2010 sind Abfragen über das Hypertext Transfer Protocol Secure (HTTPS)
    an die XML-RPC-Schnittstelle möglich.

    Die WDDX-Schnittstelle steht ab dem 10.08.2011 nicht mehr zur Verfügung.
    Bitte verwenden Sie ab diesem Zeitpunkt nur noch die XML-RPC-Schnittstelle.
    Quelle: Bestätigung von ausländischen Umsatzsteuer-Identifikationsnummern

    Ich hatte gerade eine real existierende USt-ID mit einem fiktionalen Firmennamen getestet und ein rotes geprüft/OKAY bekommen. Was mich allerdings wundert. Im USt-ID-Modul ist "Plausibilitätprüfung" auf "true" und "Live prüfen" (Bundesamt Finanzen Gateway) ebenfalls auf "true" gestellt. Kann mir denn einer dieses Verhalten erklären? Ich hab außerdem außerhalb der Zeiten (5-23 Uhr) geprüft, in denen laut Bundeszentralamt für Steuern (Bestätigung von ausländischen Umsatzsteuer-Identifikationsnummern - XML-RPC-Schnittstelle diese Schnittstelle verfügbar ist (LOL). Alles sehr eigenartig, dies lässt mich daran zweifeln, ob die Live Prüfung jemals funktionierte ... vielleicht kann mich einer aufklären.
     :-?

    Übrigens kann man sich eine "qualifizierte" Anfrage mit Überprüfung des Firmennamens, Anschrift usw. schriftlich schicken lassen. Soweit ich weiß, ist man erst damit wirklich auf der sicheren Seite. Finanzamttechnisch.

    ostermann

    • Fördermitglied
    • Beiträge: 124
    • Geschlecht:
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #18 am: 18. August 2011, 15:11:27
    Die zeitliche Beschränkung würde dafür sprechen, dass doch über den EU-Server zu machen. Mag mal jemand vom modified eCommerce Shopsoftware-Team was dazu sagen, ob und wann die neue Schnittstelle in modified eCommerce Shopsoftware integriert wird?

    Ich prüfe die USt.-IDs übrigens immer nochmal von Hand und lasse mir eine Bestätigung schicken. Insofern würde es mir reichen, wenn im Shop geprüft wird, ob die Nummer an sich gültig ist.

    Mit freundlichen Grüßen
    Thorsten Ostermann

    Jivi Minetti

    • Frisch an Board
    • Beiträge: 65
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #19 am: 18. August 2011, 18:55:43
    Hmh, ich kenn mich mit SOAP überhaupt nicht aus. Vielleicht gibt es hier findige Entwickler, die darauf Bock haben. Mein Shop ist eh noch in der Entwicklungsphase, aber ich werde wohl die XML-RPC-Lösung von Franky_n umsetzen. Mal sehn, obs klappt. Bloss gut, dass ich nix kompilieren muß, denn dann würde der Spass bei meinem Webhoster aufhören.

    @Justus78: ich zwar zwar keine Ahnung, was die Fehlermeldung genau sagen will, hab mich aber schon durch diverse Threads bezgl. Ust-ID gewühlt. Oft kam am Ende heraus, das die nötige cURL-Funktionalität des Webservers fehlte.
     :glaskugel:

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #20 am: 18. August 2011, 23:32:00
    Hallo Zusammen,

    die XML-RPC Funktionalität des Webservers muss gewährleistet sein, bedeutet:
    http://de3.php.net/manual/de/book.xmlrpc.php
    muß auch auf Eurem Server aktiviert sein, sonst kommt die Fehlermeldung oben.

    Viele Grüße

    Franky

    Jivi Minetti

    • Frisch an Board
    • Beiträge: 65
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #21 am: 19. August 2011, 02:23:52
    Hmh, gut zu wissen, also folgende Anforderungen (an den Webserver) müssen erfüllt sein, ja?

    Zitat
    Anforderungen

    Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --enable-libxml ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.

    Quelle: http://de3.php.net/manual/de/xmlrpc.requirements.php

    Und wegen der Installation/Kompilen den Webhoster fragen bzw. hoffen, dass es im Paket schon dabei ist? UFF. Ein ganz schöner Tanz, aber die Funktionalität find ich persönlich ziemlich wichtig.

    Zitat
    Installation

    XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

    Quelle: http://de3.php.net/manual/de/xmlrpc.installation.php

    Vielleicht sollten wir hier Tipps für Webhoster sammeln, die diese Funktionalität im Programm haben.
    Wird cURL immer noch dafür (extra) gebraucht?

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #22 am: 19. August 2011, 08:18:42
    Hallo Jivi Minetti,

    für dieses Modul benötigt man die cURL Funktionalität dann nicht, aber es ist sowieso hilfreich auch diese Funktionalität zu haben da manch anderes Modul darauf aufsetzt...
    Bedeutet: Wenn es ein riesen Akt für Deinen Webhoster ist dann lasse direkt beides einschalten.

    Viele Grüße

    Franky

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #23 am: 19. August 2011, 15:52:40
    @ostermann: Den Beitrag konntest du leider nicht lesen, da er nicht im öffentlichen Teil des Forums gepostet wurde - mein Fehler.

    Meine Lösung funktioniert nur, wenn dein PHP mit SOAP kompiliert wurde!
    (Das ist zwar von Webhoster zu Webhoster unterschiedlich, ist aber ab PHP5 standardmäßig dabei!)

    Anbei das Coding, mit dem ich bisher meine UstIDs teste:

    Code: PHP  [Auswählen]
        <?php
        //error_reporting(E_ALL);
         
        echo validate_vatid('DE / 247680236', 'DE');
        echo '<br>';
        echo validate_vatid('ATU 56292906', 'AT');
         
        function validate_vatid($vat_id, $country_id) {
         
            $results = array (0 => '0', 1 => '1', 8 => '8', 9 => '9');
            //0 = 'false', 1 = 'true', 8 = 'unknown country', 9 = 'unknown algorithm'
         
            //Check VAT for EU countries only
            $country_id = strtoupper($country_id);
            switch ($country_id) {
              case 'AT':
              case 'BE':
              case 'BG':
              case 'CY':
              case 'CZ':
              case 'DE':
              case 'DK':
              case 'EE':
              case 'GR':
              case 'ES':
              case 'FI':
              case 'FR':
              case 'GB':
              case 'HU':
              case 'IE':
              case 'IT':
              case 'LT':
              case 'LU':
              case 'LV':
              case 'MT':
              case 'NL':
              case 'PL':
              case 'PT':
              case 'RO':
              case 'SE':
              case 'SI':
              case 'SK':
                //return $results[$this->checkVatID_EU($vat_id, $country_id)];
                return $results[checkVatID_EU($vat_id, $country_id)];
              default:
                return $results[8]; //unknown country
            }
        }
         
          function checkVatID_EU($vat_id, $country_id) {
         
            $wsdl_url = 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl';
         
            // Leerzeichen und sonderzeichen entfernen
            $remove = array (' ', '-', '/', '\\', '.', ':', ',');
            $vat_id = trim(chop($vat_id));
            $vat_id = str_replace($remove, '', $vat_id );
         
            //$country   = substr($vat_id, 0, 2); //erste 2 Stellen der VAT
            $vatNumber = (int) substr($vat_id, 2); // alles ab 2 Stellen der VAT (ohne Land)
         
            $client = new SoapClient($wsdl_url, array("connection_timeout" => 2));
            $params = array('countryCode' => $country_id, 'vatNumber' => $vatNumber);
         
            try {
              $result = $client->checkVat($params);
         
            } catch (SoapFault $e) {
                //enhanced error reporting
                $result = $e->faultstring;
                $n = preg_match('/\{ \'([A-Z_]*)\' \}/', $result, $matches);
                $result = $matches[1];
                $errors = array(
                  'INVALID_INPUT'       => 'The provided CountryCode is invalid or the VAT number is empty',
                  'SERVICE_UNAVAILABLE' => 'The SOAP service is unavailable, try again later',
                  'MS_UNAVAILABLE'      => 'The Member State service is unavailable, try again later or with another Member State',
                  'TIMEOUT'             => 'The Member State service could not be reached in time, try again later or with another Member State',
                  'SERVER_BUSY'         => 'The service cannot process your request. Try again later.'
                  );
         
                return $errors[$result];
            }
         
            if (!$result->valid) {
            //var_dump($result);
              return 0; //invalid VAT
            } else {
              return 1; //valid VAT
            }
            return false;
         
          } // end checkVatID_EU
        ?>

    Das ganze gibt dann 1 (=gültige UstID) oder 0 (=ungültige UstID) zurück.

    Du kannst obiges Coding zum testen in eine eigene Datei packen und z.B. über

    Code: PHP  [Auswählen]
    validate_vatid('DE247680236', 'DE');

    aufrufen.
    Der erste Parameter ist die komplette UstId (Leerzeichen,Sonderzeichen werden rausgefiltert), der zweite Parameter das Land

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #24 am: 20. August 2011, 11:07:11
    Hallo Zusammen,

    jetzt solltet Ihr zumindest mit 2 Lösungen gut versorgt worden sein! ;)

    Vielleicht kann man die in Zukunft auch noch als Ausfallsicherheit parallel aufsetzen, z.B. wenn ein Server nicht geht nimm den anderen...
    Das wäre noch eine schöne Erweiterung...
    Wer hat Lust? :)

    Viele Grüße

    Franky

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #25 am: 24. August 2011, 17:44:12
    Bitte mal zum Testen die Datei hier im Anhang verwenden und die "/includes/classes/vat_validation.php" überschreiben.

    Diese Methode verwendet statt cURL nun das PHP5-eigene SOAP und checkt alle EU-UstIDs auf Gültigkeit über den Webservice der EU. Bei der Prüfung muss nur das Land des Kunden auch zur USTID passen.

    (Einzige Voraussetzung ist PHP5 mit aktiviertem SOAP -> man über "Hilfsprogramme" -> "Server Info" feststellen.)

    Bitte Testen!

    P.S.: Der Parameter "Umsatzsteuer ID Live Überprüfen" unter "erweiterte Konfiguration" -> "UST ID" wird ignoriert, da ab sofort IMMER live geprüft wird.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #26 am: 26. August 2011, 15:07:43
    Bitte testen, dann kann die Schnittstelle für die nächste Version übernommen werden!

    Justus78

    • Neu im Forum
    • Beiträge: 12
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #27 am: 26. August 2011, 15:43:17
    Hallo DokuMan,

    Danke für die Arbeit.
    Ich habe es eingebaut.
    Test scheiterte leider daran, dass mein Hostingpaket SOAP nicht unterstützt. D.h. ich bekomme immer eine Fehlermeldung. Muss erst entweder mein Paket upgraden oder eine Lösung mit cURL wählen, mein Paket würde cURL unterstützen, Lösung dafür?

    Mal ein ganz "dumme" Frage:
    Kann ich im Shop die UST-ID Prüfung nicht einfach abschalten und manuell prüfen? Kann dann ein Kunde nach Eingabe einer ID automatisch in die Gruppe "Kunden mit ID" gelegt werden? Ich würde die ID dann manuell prüfen.
    Sorry, das ist mein erster Shop. Danke.

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #28 am: 26. August 2011, 16:02:46
    Hallo Justus78,

    hast Du meine Version auch mal probiert?

    http://www.modified-shop.org/forum/index.php?topic=14145.msg137756#msg137756

    Die Lösung den Kunden automatisch erstmal in "Kunde mit UStID" zu legen würde bedeuten das er was bestellt und direkt mal die falsche Rechnung ohne USt zugeschickt bekommt.
    Kann ja auch sein das er eine falsche ID angibt und das mitten in der Nacht wo Du gerade nicht vorm Rechner sitzt...

    Viele Grüße

    Franky

    Justus78

    • Neu im Forum
    • Beiträge: 12
    Re: Kundenneuanlage mit UStID schlägt fehl
    Antwort #29 am: 26. August 2011, 16:18:04
    Hallo franky_n,

    danke für den Hinweis, das habe ich wohl übersehen.
    Werde ich tun und berichten.
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    13 Antworten
    3416 Aufrufe
    15. Januar 2018, 17:29:06 von fishnet
    3 Antworten
    2865 Aufrufe
    18. Januar 2016, 12:03:17 von jumpM
    4 Antworten
    1712 Aufrufe
    09. Juni 2019, 20:27:05 von bolero
    10 Antworten
    1974 Aufrufe
    28. Oktober 2020, 00:47:57 von Sebastian M.
               
    anything