tigron/skeleton-vat-check

Tigron Skeleton VAT检查

v2.1.3 2023-09-01 08:02 UTC

This package is auto-updated.

Last update: 2024-08-30 01:20:10 UTC


README

描述

使用独立的解析器检查增值税号(这些是默认步骤)

  1. 是否为欧洲(总是执行,不可配置)
  2. 通过预定义的正则表达式数组进行语法解析(配置中列出可用项)
  3. 缓存表(用于检查是否有最近的KBO和VIES结果,以避免在不必要时对API进行征税)
  4. VIES服务检查

安装

通过composer安装

composer require tigron/skeleton-vat-check

如何设置

运行初始迁移或执行以下查询

CREATE TABLE `vat_check_cache` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`vat_number` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
	`country_id` int(11) NOT NULL,
	`valid` int(11) NOT NULL DEFAULT '0',
	`created` datetime NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `transaction` (`classname`, `created`, `scheduled_at`, `data`, `retry_attempt`, `recurring`, `completed`, `failed`, `locked`, `frozen`, `parallel`) 
VALUES ('Cleanup_Vat_Check_Cache', now(), now(), '', '', '1', '0', '0', '0', '0', '0');

如何使用

/**
 * the VAT number to check
 */
$vat_number = '0886776275';

/**
 * The Country object. 
 * Your object should implement the \Skeleton\Vat\Check\Country Interface
 */
$country = $your_country_object;

/**
 * The resolver used to give you the result, passed by reference and the 
 * resolver_used can be retrieved after calling the validate method
 */
$resolver_used = '';

/**
 * Perform the call
 */
\Skeleton\Vat\Check\Check::validate($vat_number, $country, $resolver_used) 

可选配置

By default the validator will do these steps: 
1. Is european (always performed not configurable)
2. Syntax via a predefined regex array (list available in config)
3. Caching table (to check if there were recent results for KBO and VIES + avoid taxing the API when not needed)
4. VIES service checkCheck Syntax, check recent cache (for API results) and Check against Vies. 

It is now possible to change the order of these steps and it is possible to do an aditional step against the KBO (requires authentication).

/**
* Example config
*/
\Skeleton\Vat\Check\Config::set_resolvers([
	new \Skeleton\Vat\Check\Resolver\Syntax(),
	new \Skeleton\Vat\Check\Resolver\Cache(),
	new \Skeleton\Vat\Check\Resolver\Kbo(), // Not used by default 
	new \Skeleton\Vat\Check\Resolver\Vies()
]);

/**
* Example auhtentication
*/
\Skeleton\Vat\Check\Config::$kbo_authentication = [
	'user' => 'test@tigron.be',
	key' => 'test_key'
];