mistralys/vies-vat-service

获取增值税号数据,并以JSON格式返回。

1.0.0 2021-06-11 07:26 UTC

This package is auto-updated.

Last update: 2024-09-11 14:53:40 UTC


README

对VIES增值税服务进行包装,以JSON格式获取数据。

获取数据

发送请求

只需调用具有vatid参数的端点

/url/to/endpoint/?vatid=FR00000000

请求始终返回包含status键的JSON。这指定了请求本身是否成功,而不是增值税号是否有效。

成功请求

成功请求返回关于结果的详细数据。相关部分存储在data > result下。

{
  "status": "success",
  "data": {
    "result":{
      "vatID":{
        "countryCode":"FR",
        "number":"00000000"
      },
      "valid":true,
      "identifier":"WJFS4465465SD",
      "date":"2021-03-17T07:17:07+0100",
      "companyName":"---",
      "companyAddress":"---"
    },
    "requester":{
      "name":"Company name",
      "companyType":"",
      "street":"Street address",
      "city":"City",
      "postcode":"00000",
      "vatID":{
        "countryCode":"FR",
        "number":"000000"
      }
    },
    "requesterMatch":{
      "name":"",
      "companyType":"",
      "street":"",
      "postcode":"",
      "city":""
    }
  }
}

注意:请求者信息是已在服务配置中指定的,在config.php中。

根据经验,结果集中的公司名称和地址经常缺失,因此最好不要依赖它。请求者匹配也是如此。

失败请求

请求可能会失败,例如,如果VIES增值税服务宕机。错误消息详细说明了原因。

{
  "status": "error",
  "message": "Error message",
  "code": 145
}

解析增值税号字符串

静态VatID::parse()方法接受格式化和未格式化的增值税号字符串。它自动删除大多数常用分隔符和空白字符。

以下所有示例都返回一个有效的VatID实例

VatID::parse('FR 123 456 78');
VatID::parse('FR-12345678');
VatID::parse('[DE]12-34-56-78');
VatID::parse('de12345678'); // Lowercase country code  

运行测试套件

要运行测试,首先将tests/config.dist.php重命名为tests/config.php,并填写必要的信息以启用针对VIES服务的实时测试。

可以使用run-tests.bat在Windows上启动测试。在linux上,运行以下命令

vendor/bin/phpunit