paul.boyer Posted September 17, 2013 Share Posted September 17, 2013 Bonjour à tous, J'obtiens un échec systématique de la vérification du numéro de tva avec le module vatnumber (Numéro de Tva Européen). Le message d'erreur lorsque j'essaie d'enregistrer une adresse avec un numéro de tva est : "VAT number validation service unavailable" Dans les logs apache, j'ai 3 lignes d'erreur identiques séparées de 5 secondes (les XX sont pour anonymiser) : [Tue Sep 17 11:11:13 2013] [error] [client XX.XX.XX.XX] PHP Warning: file_get_contents(http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=FR&iso=FR&vat=XXX): failed to open stream: HTTP request failed! in XXX/modules/vatnumber/vatnumber.php on line 127, referer: https://XXX/adresse[Tue Sep 17 11:11:18 2013] [error] [client XX.XX.XX.XX] PHP Warning: file_get_contents(http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=FR&iso=FR&vat=XXX): failed to open stream: HTTP request failed! in XXX/modules/vatnumber/vatnumber.php on line 127, referer: https://XXX/adresse[Tue Sep 17 11:11:23 2013] [error] [client XX.XX.XX.XX] PHP Warning: file_get_contents(http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=FR&iso=FR&vat=XXX): failed to open stream: HTTP request failed! in XXX/modules/vatnumber/vatnumber.php on line 127, referer: https://XXX/adresse L'url de vérification (http://ec.europa...) est correcte et répond bien si je l'ouvre depuis le serveur avec wget. Je suspecte un problème de configuration de la sécurité de php (suhosin) mais je ne trouve pas ce qui bloque. Merci par avance de vos lumières ! Paul Link to comment Share on other sites More sharing options...
natachaC Posted February 10, 2014 Share Posted February 10, 2014 Bonjour je déterre ce topic resté sans réponse sur le sujet du module de vérification du numéro de TVA je viens d'activer le module et ... Le service de validation du numéro de TVA est indisponible après quelques recherches pas de solution fonctionnelle si un aimable tech de Prestashop peux venir à notre secours merci bien cordialement Natacha Courcelles Link to comment Share on other sites More sharing options...
natachaC Posted February 11, 2014 Share Posted February 11, 2014 Re après avoir cherché de tous les cotés j'ai pas trouvé de réponse c'est mon technicien hébergeur qui a trouvé cette méthode voici donc la fonction réécrite avec curl (vérifiez que Curl est installé sur votre serveur) et qui fonctionne public static function WebServiceCheck($vatNumber) { if (empty($vatNumber)) return array(); $vatNumber = str_replace(' ', '', $vatNumber); $prefix = substr($vatNumber, 0, 2); if (array_search($prefix, self::getPrefixIntracomVAT()) === false) return array(Tools::displayError('Invalid VAT number')); $vat = substr($vatNumber, 2); $url = "http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=".urlencode($prefix)."&iso=".urlencode($prefix)."&vat=".urlencode($vat).""; @ini_set('default_socket_timeout', 2); for ($i = 0; $i < 3; $i++) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $pageRes=curl_exec($curl); curl_close($curl); if ($pageRes) { if (preg_match('/invalid VAT number/i', $pageRes)) { @ini_restore('default_socket_timeout'); return array(Tools::displayError('VAT number not found')); } else if (preg_match('/valid VAT number/i', $pageRes)) { @ini_restore('default_socket_timeout'); return array(); } else ++$i; } else sleep(1); } @ini_restore('default_socket_timeout'); return array(Tools::displayError('VAT number validation service unavailable')); } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now