【问题标题】:check VAT for local company检查当地公司的增值税
【发布时间】:2010-07-16 11:14:36
【问题描述】:

我正在尝试使用http://ec.europa.eu/taxation_customs/vies/vieshome.do?selectedLanguage=EN 在c#中检查是否正常

[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("DotNetCOM.VerificareCIF")]
public class VerificareCIF
{
    public string tara = "RO";
    public bool valid = false;
    public DateTime data;
    public String firma = String.Empty;
    public String adresa = String.Empty;


    public bool VerifCIF(string CIF)
    {
        eu.europa.ec.checkVatService service = new eu.europa.ec.checkVatService();
        data = service.checkVat(ref tara, ref CIF, out valid, out firma, out adresa);
        return valid;
    }
}

当我添加网络参考时它崩溃了

【问题讨论】:

    标签: c# .net web-services asmx


    【解决方案1】:

    如果你不想依赖 VIES 的网站,你可以使用这些正则表达式,由国家的前两个字母散列:

      VAT_NUMBER_FORMATS = {
        'IE' => /[0-9a-z]{12}/i,
        'DK' => /\d{8}/,
        'FI' => /\d{8}/,
        'LU' => /\d{8}/,
        'MT' => /\d{8}/,
        'SI' => /\d{8}/,
        'HU' => /\d{8}/,
        'CZ' => /\d{8,10}/,
        'ES' => /[0-9a-z]{9}/i,
        'CY' => /\d{8}[a-z]/i,
        'DE' => /\d{9}/,
        'EL' => /\d{9}/,
        'GR' => /\d{9}/,
        'PT' => /\d{9}/,
        'EE' => /\d{9}/,
        'SK' => /\d{8,10}/,
        'LT' => /\d{9,12}/,
        'GB' => /\d{9}/,
        'AT' => /U\d{8}/,
        'PL' => /\d{10}/,
        'BE' => /\d{10}/,
        'LV' => /[0-9a-z]{11}/i,
        'IT' => /\d{11}/,
        'FR' => /\d{12}/,
        'NL' => /[0-9a-z]{12}/i,
        'SE' => /\d{12}/,
      }
    

    【讨论】:

      【解决方案2】:

      psu - 在返回之前检查您的输出值(输出是否有效),因为如果服务调用中有错误,它可能是未定义的。

      吉姆

      【讨论】:

      • 我试过了,我定义了它......也许这个解决方案是错误的。任何想法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多