VIES增值税号验证

时间:2012-02-06 09:35:46

标签: javascript php jquery html vies

任何人都知道在我们的网站上合并表格以验证VIES的方法吗?我找到了通过欧盟网站验证的信息。

http://ec.europa.eu/taxation_customs/vies/vieshome.do

我感兴趣的是直接通过我网站的付款数据形式验证。

感谢。

8 个答案:

答案 0 :(得分:90)

实际上,可以通过API查询VIES数据库 它们仅支持SOAP协议,但这应该足够了。

这是一个简单的例子:

$client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl");
var_dump($client->checkVat(array(
  'countryCode' => $countryCode,
  'vatNumber' => $vatNo
)));

这是WSDL:http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl

有多个API提供程序基于原始提供程序,但使用不同的协议提供它。简单地说,它们就像翻译一样 - 将json与您的应用程序一起使用,并使用SOAP连接到原始API。这些都存在连接超时的主要问题。

有时VIES数据库响应缓慢,因此需要更多时间来返回响应。在设计应用程序时应考虑这一点。

答案 1 :(得分:5)

此网站将普通的HTML表单发送到服务器。

最简单的解决方案是在URL中传递参数并使用file_get_contents来获取响应。

然后可以解析响应以提取所需的信息。没有经过测试,但显示了这个想法:

$country1 = 'PL';
$country2 = 'PL';
$vatnum1 = '123456';
$vatnum2 = '789012';

//Prepare the URL
$url = 'http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms='.$country1.'&iso='.$country1.'&vat='.$vatnum1.'&name=&companyType=&street1=&postcode=&city=&requesterMs='.$country2.'&requesterIso='.$country2.'&requesterVat='.$vatnum2.'&BtnSubmitVat=Verify';

$response = file_get_contents($url);
// Do sth with the response
echo $response;

答案 2 :(得分:3)

以下是基于完整堆栈验证javascript的验证脚本,每个国家正则表达式+模数

http://www.braemoor.co.uk/software/vat.shtml

下载链接: http://www.braemoor.co.uk/software/downloads/jsvat.zip

使用webservices有时候不是一种选择。

另请参阅用于欧盟增值税验证的PHP端口:

答案 3 :(得分:2)

您现在可以使用js lib进行欧洲增值税验证:

jsvat - small library to check validity of EU VAT number

基于braemoor's vat lib,但使用现代js标准重写(braemoor,用于exapmpe stil使用.eval())并添加到bowernpm注册表。 还有单元测试。

bower i jsvat --save

npm i jsvat --save

答案 4 :(得分:1)

我在ruby中需要这个,所以这是我的代码

  • gem install savon
  • 将此方法添加到您的控制器

    def validateVAT
      # create a client for the service
      client = Savon.client(wsdl: 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl')
      response = client.call(:check_vat, message: {countryCode: params[:country_code], vatNumber: params[:vat]})
      render json: { valid: response.body[:check_vat_response][:valid] }, status: :ok
    end
    

答案 5 :(得分:1)

我在http://vatid.eu使用了REST服务,但由于它们被VIES阻止(我想由于请求量很大),我已切换到http://apilayer.net/

免费计划是每月100个请求,所以我实施了一个小缓存,我生成了自己的有效增值税号码表(每年可更新),所以我不会花费更多的请求查看相同的增值税号码不止一次。 适合我的需要;)

答案 6 :(得分:1)

这是一个包含VIES WebService的composer包。您可以快速轻松地使用它: https://github.com/drahosistvan/vatvalidation

答案 7 :(得分:0)

VIES数据库还有一个API。 https://vatlayer.com/documentation

我正在寻找解决地址信息的方法。现在你可以得到它,但它是一个字符串。