Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我在哪里可以找到增值税API?_Php_Jquery_Api_Curl - Fatal编程技术网

Php 我在哪里可以找到增值税API?

Php 我在哪里可以找到增值税API?,php,jquery,api,curl,Php,Jquery,Api,Curl,在我的家乡,我不必缴纳增值税。但是我正在做的一个项目需要它的投入才能合法地完成一项交易 在哪里可以找到API,从增值税税号中获取相关信息(地址、公司名称等)?我想用它来自动填充表单,因为没有比让客户工作更好的吓跑客户的方法了。如评论中所述,它有一个API。我完全实现了你的要求,主要是出于同样的原因。还有它的“php”。给你: class VatValidator { const validVatId = 'valid'; const invalidVatId = 'invalid'; /**

在我的家乡,我不必缴纳增值税。但是我正在做的一个项目需要它的投入才能合法地完成一项交易

在哪里可以找到API,从增值税税号中获取相关信息(地址、公司名称等)?我想用它来自动填充表单,因为没有比让客户工作更好的吓跑客户的方法了。

如评论中所述,它有一个API。我完全实现了你的要求,主要是出于同样的原因。还有它的“php”。给你:

class VatValidator {

const validVatId = 'valid';
const invalidVatId = 'invalid';

/**
 *
 * The european commission (ec) provides a validation database for VAT Id's, which can be accessed via WSDL.
 * We check the given VAT against that Database.
 *
 * Actually that is more reliable than any captcha !!!
 *
 *  * only companies have one
 *  * the code can not be "brute forced"
 *  * simple mass requests can be cut off easily
 *
 * @param String $requestedVatId entire VAT Id including country code
 * @param string $company optional Company Name
 * @param string $city optional company city
 * @return Multiple false on error, String self::validVatId or String self::invalidVatId according to state.
 */
public static function validateVATID($requestedVatId, $company=null, $city=null)
{
    $ret = false;
    $ecUrl = "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl";
    $vatid = str_replace(array(' ', '.', '-', ',', ', '), '', trim($requestedVatId));
    $cc = substr($vatid, 0, 2);
    $vn = substr($vatid, 2);
    $client = new SoapClient($ecUrl);

    if($client)
    {
        $params = array('countryCode' => $cc,
                        'vatNumber' => $vn,
        );

        /*
         * simple request only since we do not get any further information anyway.
         *
         * with $r = $client->checkVatApprox($params);
         * we could:
         *
                    'requesterCountryCode' => 'XXX',
                    'requesterVatNumber' => 'XXX' // Own ID!!

        if ( !empty($company) )
            $params['traderName'] = $company;
        if ( !empty($city) )
            $params['traderCity'] = $city;

        $params["traderCompanyType"] = 1;
        $params["traderStreet"] = 'xyz';
        $params["traderPostcode"] = '1234';
        */

        try
        {
            //$r = $client->checkVatApprox($params);
            $r = $client->checkVat($params);
            if($r->valid == true)
            {
                logMessage(Constants::$debug, 'valid: ' . $vatid);
                $ret = self::validVatId;
            }
            else
            {
                logMessage(Constants::$debug, 'invalid: ' . $vatid);
                $ret = self::invalidVatId;
            }

            // This foreach shows every single line of the returned information
            //              foreach($r as $k=>$prop)
            //              {
            //                  logMessage(Constants::$debug, $k.': '.$prop);
            //              }
            //logMessage(Constants::$debug, print_r($r, true));

        } catch(SoapFault $e) {
           logMessage(Constants::$debug, 'Error, see message: '.$e->faultstring);
           $ret = $e->faultstring;
        }
    }
    else
    {
        logMessage(Constants::$debug, 'cannot connect to ' . $ecUrl);
        $ret = 'CONNECTERROR';
    }
    return $ret;
}
}

代码中的“XXX”可能是您自己的增值税ID,为了防止您自己的ID被弄虚作假…

增值税,您指的是增值税,对吗?应根据哪些法律计算增值税?您希望这项工作适用于世界上哪些地区?例如,您的“增值税”是否包括美国销售税?我怀疑你会发现任何一个解决方案适用于每个国家的增值税登记。嗨,谢谢。这里有一段直接摘自项目文件的摘录:“英语单词,在欧洲使用的是VAT。VAT的荷兰语翻译是BTW,在澳大利亚和新西兰,他们称之为VAT GST”。。。所以我们说的是这些地区。我不确定缩写的具体内容,但这里有一个典型的格式化增值税税号,它应该能回答“NL174904241B0”的用途问题。好吧,对于欧洲来说,你可能想从开始,这意味着它们可以“在线验证”,所以你可能想看看该网站是否有API。不过,我非常怀疑这是否适用于澳大利亚和新西兰。谢谢——我去过那里,没有找到API——通常在谷歌搜索几个小时后发布。这太棒了——我没想到会这样!我仍然不明白你是怎么想出来的:尽管如此,我还是非常感激!非常感谢。公司名称检查怎么样?此工具仅检查号码是否有效,而不检查提供此号码的客户是否来自该公司。如何检查增值税注册号是否符合给定的公司名称?@Ello AFAIK此工具还可以检查给定的公司,如果请求中提供了公司名称,它将进行检查。它不会透露任何信息,但会给你一个“有效”或“无效”