mercredi 21 juillet 2010
TVA et site Internet (II)
Par Pierre Duhem, mercredi 21 juillet 2010 à 13:16 :: General
Ce billet est le deuxième d'une série consacrée à la gestion des numéros de TVA sur un site Internet, et plus spécifiquement au contrôle des numéros donnés par les acheteurs. Voir le billet I.
La possibilité d'accéder au service par programme est mise en œuvre en utilisant le protocole SOAP (Simple Object Access Protocol). Ce protocole définit des échanges de messages entre un client et un serveur.
Le fichier WDSL décrivant le service offert peut se trouver à l'adresse http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl.
Dans le cas d'un script PHP, comme le montre l'exemple publié sur le blog de Riff, le code se résume à quelques lignes :
Les paramètres passés à la fonction checkVat sont d'abord le code de pays ($cc). Voir la FAQ n° 11 du site VIES pour les codes, qui sont les codes ISO en 2 caractères, hormis pour la Grèce, où c'est 'EL'. Le second paramètre est le numéro. Voir la même FAQ pour les raffinements. Par exemple, dans le cas de l'Autriche, on a 'AT' comme code de pays, mais le numéro commence par un 'U', si bien que les codes complets sont parfois exprimés sous la forme 'ATUxxxxxxxxx'.
Voir le blog mentionné ci-dessus pour un exemple de codage de la classe checkVat.
Je ne suis pas à l'aise avec la programmation OO, mais il me semble qu'il y aurait du ménage à faire et qu'il y a plusieurs lignes qui ne servent à rien.
En tout cas, ce code fonctionne et vous retourne un résultat non nul quand le numéro est valide et un résultat nul lorsqu'il y a un problème.
Les problèmes correspondent essentiellement aux périodes de maintenance que nous avons mentionnées dans le premier billet.
Cependant, si vous vous êtes précipité pour lire le fichier WDSL dont l'adresse est donnée ci-dessus, vous aurez sans nul doute remarqué qu'il existe en fait deux déclarations d'éléments xsd, à savoir, immédiatement après le texte pompeusement intitulé 'Documentation' :
Ce deuxième service présente un certain nombre d'avantages, que nous verrons dans un prochain billet.
La possibilité d'accéder au service par programme est mise en œuvre en utilisant le protocole SOAP (Simple Object Access Protocol). Ce protocole définit des échanges de messages entre un client et un serveur.
Le fichier WDSL décrivant le service offert peut se trouver à l'adresse http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl.
Dans le cas d'un script PHP, comme le montre l'exemple publié sur le blog de Riff, le code se résume à quelques lignes :
<?php
$vies = new SoapClient($wsdl);
$nii = new checkVat($cc, $vat);
$ret = $vies->checkVat($nii);
?>
Les paramètres passés à la fonction checkVat sont d'abord le code de pays ($cc). Voir la FAQ n° 11 du site VIES pour les codes, qui sont les codes ISO en 2 caractères, hormis pour la Grèce, où c'est 'EL'. Le second paramètre est le numéro. Voir la même FAQ pour les raffinements. Par exemple, dans le cas de l'Autriche, on a 'AT' comme code de pays, mais le numéro commence par un 'U', si bien que les codes complets sont parfois exprimés sous la forme 'ATUxxxxxxxxx'.
Voir le blog mentionné ci-dessus pour un exemple de codage de la classe checkVat.
Je ne suis pas à l'aise avec la programmation OO, mais il me semble qu'il y aurait du ménage à faire et qu'il y a plusieurs lignes qui ne servent à rien.
En tout cas, ce code fonctionne et vous retourne un résultat non nul quand le numéro est valide et un résultat nul lorsqu'il y a un problème.
Les problèmes correspondent essentiellement aux périodes de maintenance que nous avons mentionnées dans le premier billet.
Cependant, si vous vous êtes précipité pour lire le fichier WDSL dont l'adresse est donnée ci-dessus, vous aurez sans nul doute remarqué qu'il existe en fait deux déclarations d'éléments xsd, à savoir, immédiatement après le texte pompeusement intitulé 'Documentation' :
<xsd:element name="checkVat">et, un peu plus loin :
<xsd:element name="checkVatApprox">
Ce deuxième service présente un certain nombre d'avantages, que nous verrons dans un prochain billet.