From: Tom Shelton on

Edje.Rommel(a)gmail.com wrote:
> Hello,
>
> I've have a problem with a webservice. I just want to validate a VAT
> number by country code and VAT numer. The return value should be like
> "it's valid" and/or the name where it's registered to.
>
> To do this i can access the webservice on the following location:
> http://ec.europa.eu/taxation_customs/vies/api/checkVatPort
>
> A WSDL file is also available:
> http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl.
>
> My question is how can i get the results i want. Can someone help me
> with just the little module that does the request.
>
> I already right-click on Web reference and added
> http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl, but
> when i want to use checkvat(country,VAT), it exepect 3 other fields and
> the return type seem to be date.
>
> My understanding is that i only have to use 2 parameters (via XML ?),
> and retrieve a string value (XML ?)
>
> I just need something like
> returnvalue = doRequest(country,VAT).valid
> Name = returnvalue.Name
> Valid = returnvalue.valid
> etc.....
>
>
> Thanks for all your help.
>
> Regards,
>
> Edje

Option Strict On
Option Explicit On

Imports System
Imports ConsoleApplication9.eu.europa.ec

Module Module1

Sub Main()
Dim check As New checkVatService()
Dim countryCode As String = "CZ"
Dim vatNumber As String = "991 2311 23"
Dim valid As Boolean
Dim currentDate As Date
Dim name As String = String.Empty
Dim address As String = String.Empty

currentDate = check.checkVat(countryCode, vatNumber, valid,
name, address)

If valid Then
Console.WriteLine(name)
Console.WriteLine(address)
Console.WriteLine(currentDate)
Else
Console.WriteLine("invalid vat")
End If
End Sub

End Module

What I don't now a valid VAT, so I can't really test it. I just get
back valid = false. I imported this into C#, and it shows the
arguments as:

DateTime checkVat (ref string countryCode, ref string vatNumber, out
bool valid, out string name, out string address)

In C#, that means that the method will fill in the out parameters, and
you must supply the ref parameters. In c# that means you must
initailize first, and it must be saved as a variable. VB.NET will let
you get away with it by creating a temp value for you. But, as you can
see I declare all these values in the above code.... So, based on the
C# code I'm assuming that the VB.NET code actually works?

--
Tom Shelton

From: Tom Shelton on

Tom Shelton wrote:
> Edje.Rommel(a)gmail.com wrote:
> > Hello,
> >
> > I've have a problem with a webservice. I just want to validate a VAT
> > number by country code and VAT numer. The return value should be like
> > "it's valid" and/or the name where it's registered to.
> >
> > To do this i can access the webservice on the following location:
> > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort
> >
> > A WSDL file is also available:
> > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl.
> >
> > My question is how can i get the results i want. Can someone help me
> > with just the little module that does the request.
> >
> > I already right-click on Web reference and added
> > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl, but
> > when i want to use checkvat(country,VAT), it exepect 3 other fields and
> > the return type seem to be date.
> >
> > My understanding is that i only have to use 2 parameters (via XML ?),
> > and retrieve a string value (XML ?)
> >
> > I just need something like
> > returnvalue = doRequest(country,VAT).valid
> > Name = returnvalue.Name
> > Valid = returnvalue.valid
> > etc.....
> >
> >
> > Thanks for all your help.
> >
> > Regards,
> >
> > Edje
>
> Option Strict On
> Option Explicit On
>
> Imports System
> Imports ConsoleApplication9.eu.europa.ec
>
> Module Module1
>
> Sub Main()
> Dim check As New checkVatService()
> Dim countryCode As String = "CZ"
> Dim vatNumber As String = "991 2311 23"
> Dim valid As Boolean
> Dim currentDate As Date
> Dim name As String = String.Empty
> Dim address As String = String.Empty
>
> currentDate = check.checkVat(countryCode, vatNumber, valid,
> name, address)
>
> If valid Then
> Console.WriteLine(name)
> Console.WriteLine(address)
> Console.WriteLine(currentDate)
> Else
> Console.WriteLine("invalid vat")
> End If
> End Sub
>
> End Module
>
> What I don't now a valid VAT, so I can't really test it. I just get
> back valid = false. I imported this into C#, and it shows the
> arguments as:
>
> DateTime checkVat (ref string countryCode, ref string vatNumber, out
> bool valid, out string name, out string address)
>
> In C#, that means that the method will fill in the out parameters, and
> you must supply the ref parameters. In c# that means you must
> initailize first, and it must be saved as a variable. VB.NET will let
> you get away with it by creating a temp value for you. But, as you can
> see I declare all these values in the above code.... So, based on the
> C# code I'm assuming that the VB.NET code actually works?
>
> --
> Tom Shelton

Boy - I meant to point out that I'm using the vat numbers supplied adm.
Didn't mean to take credit for that :) I was just trying to take his
example a little farther.

--
Tom Shelton

From: adm on

Tom Shelton wrote:
> Boy - I meant to point out that I'm using the vat numbers supplied adm.
> Didn't mean to take credit for that :) I was just trying to take his
> example a little farther.

your example is great, tom. i am going to try this on wednesday...my
full code was very similar to this, but only gave me input errors. i
wonder what the problem is. that insight into "in" and "out" is
helpful. PHP worked by passing two parameters in and getting 5 back,
but VB didn't want to do me that kindness.

also, it seems like a misspoke on that checkVatAsync above. Is it just
an artifact of the proxy class? I thought that might be the case after
I actually looked at the WSDL.

adm

From: Edje on

Tom Shelton schreef:

> Tom Shelton wrote:
> > Edje.Rommel(a)gmail.com wrote:
> > > Hello,
> > >
> > > I've have a problem with a webservice. I just want to validate a VAT
> > > number by country code and VAT numer. The return value should be like
> > > "it's valid" and/or the name where it's registered to.
> > >
> > > To do this i can access the webservice on the following location:
> > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort
> > >
> > > A WSDL file is also available:
> > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl.
> > >
> > > My question is how can i get the results i want. Can someone help me
> > > with just the little module that does the request.
> > >
> > > I already right-click on Web reference and added
> > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl, but
> > > when i want to use checkvat(country,VAT), it exepect 3 other fields and
> > > the return type seem to be date.
> > >
> > > My understanding is that i only have to use 2 parameters (via XML ?),
> > > and retrieve a string value (XML ?)
> > >
> > > I just need something like
> > > returnvalue = doRequest(country,VAT).valid
> > > Name = returnvalue.Name
> > > Valid = returnvalue.valid
> > > etc.....
> > >
> > >
> > > Thanks for all your help.
> > >
> > > Regards,
> > >
> > > Edje
> >
> > Option Strict On
> > Option Explicit On
> >
> > Imports System
> > Imports ConsoleApplication9.eu.europa.ec
> >
> > Module Module1
> >
> > Sub Main()
> > Dim check As New checkVatService()
> > Dim countryCode As String = "CZ"
> > Dim vatNumber As String = "991 2311 23"
> > Dim valid As Boolean
> > Dim currentDate As Date
> > Dim name As String = String.Empty
> > Dim address As String = String.Empty
> >
> > currentDate = check.checkVat(countryCode, vatNumber, valid,
> > name, address)
> >
> > If valid Then
> > Console.WriteLine(name)
> > Console.WriteLine(address)
> > Console.WriteLine(currentDate)
> > Else
> > Console.WriteLine("invalid vat")
> > End If
> > End Sub
> >
> > End Module
> >
> > What I don't now a valid VAT, so I can't really test it. I just get
> > back valid = false. I imported this into C#, and it shows the
> > arguments as:
> >
> > DateTime checkVat (ref string countryCode, ref string vatNumber, out
> > bool valid, out string name, out string address)
> >
> > In C#, that means that the method will fill in the out parameters, and
> > you must supply the ref parameters. In c# that means you must
> > initailize first, and it must be saved as a variable. VB.NET will let
> > you get away with it by creating a temp value for you. But, as you can
> > see I declare all these values in the above code.... So, based on the
> > C# code I'm assuming that the VB.NET code actually works?
> >
> > --
> > Tom Shelton
>
> Boy - I meant to point out that I'm using the vat numbers supplied adm.
> Didn't mean to take credit for that :) I was just trying to take his
> example a little farther.
>
> --
> Tom Shelton


Tom,

I tried this code (with proxy server), but i get the following error:
"The request failed with HTTP status 417: Expectation Failed."
The error is on the following row:
currentDate = check.checkVat(countryCode, vatNumber, valid,
name, address)

Here is my code:

Option Strict On
Option Explicit On
Imports BTWCheck.eu.europa.ec
Imports System.Net
Imports System


Module Module1

Sub Main()
Dim check As New checkVatService()
Dim countryCode As String = "BE"
Dim vatNumber As String = "4179951765"
Dim valid As Boolean
Dim currentDate As Date
Dim datestring As String
Dim name As String = String.Empty
Dim address As String = String.Empty
' proxy settings
Dim cr As New System.Net.NetworkCredential("user", "pass",
"domain")
Dim pr As New System.Net.WebProxy("10.0.0.9", 8080)
pr.Credentials = cr
check.Proxy = pr


currentDate = check.checkVat(countryCode, vatNumber, valid,
name, address)
If valid Then
Console.WriteLine(name)
Console.WriteLine(address)
Console.WriteLine(currentDate)
Else
Console.WriteLine("invalid vat")
End If
End Sub


End Module

Thanks for your help.


Ed

From: Tom Shelton on

Edje wrote:
> Tom Shelton schreef:
>
> > Tom Shelton wrote:
> > > Edje.Rommel(a)gmail.com wrote:
> > > > Hello,
> > > >
> > > > I've have a problem with a webservice. I just want to validate a VAT
> > > > number by country code and VAT numer. The return value should be like
> > > > "it's valid" and/or the name where it's registered to.
> > > >
> > > > To do this i can access the webservice on the following location:
> > > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort
> > > >
> > > > A WSDL file is also available:
> > > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl.
> > > >
> > > > My question is how can i get the results i want. Can someone help me
> > > > with just the little module that does the request.
> > > >
> > > > I already right-click on Web reference and added
> > > > http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl, but
> > > > when i want to use checkvat(country,VAT), it exepect 3 other fields and
> > > > the return type seem to be date.
> > > >
> > > > My understanding is that i only have to use 2 parameters (via XML ?),
> > > > and retrieve a string value (XML ?)
> > > >
> > > > I just need something like
> > > > returnvalue = doRequest(country,VAT).valid
> > > > Name = returnvalue.Name
> > > > Valid = returnvalue.valid
> > > > etc.....
> > > >
> > > >
> > > > Thanks for all your help.
> > > >
> > > > Regards,
> > > >
> > > > Edje
> > >
> > > Option Strict On
> > > Option Explicit On
> > >
> > > Imports System
> > > Imports ConsoleApplication9.eu.europa.ec
> > >
> > > Module Module1
> > >
> > > Sub Main()
> > > Dim check As New checkVatService()
> > > Dim countryCode As String = "CZ"
> > > Dim vatNumber As String = "991 2311 23"
> > > Dim valid As Boolean
> > > Dim currentDate As Date
> > > Dim name As String = String.Empty
> > > Dim address As String = String.Empty
> > >
> > > currentDate = check.checkVat(countryCode, vatNumber, valid,
> > > name, address)
> > >
> > > If valid Then
> > > Console.WriteLine(name)
> > > Console.WriteLine(address)
> > > Console.WriteLine(currentDate)
> > > Else
> > > Console.WriteLine("invalid vat")
> > > End If
> > > End Sub
> > >
> > > End Module
> > >
> > > What I don't now a valid VAT, so I can't really test it. I just get
> > > back valid = false. I imported this into C#, and it shows the
> > > arguments as:
> > >
> > > DateTime checkVat (ref string countryCode, ref string vatNumber, out
> > > bool valid, out string name, out string address)
> > >
> > > In C#, that means that the method will fill in the out parameters, and
> > > you must supply the ref parameters. In c# that means you must
> > > initailize first, and it must be saved as a variable. VB.NET will let
> > > you get away with it by creating a temp value for you. But, as you can
> > > see I declare all these values in the above code.... So, based on the
> > > C# code I'm assuming that the VB.NET code actually works?
> > >
> > > --
> > > Tom Shelton
> >
> > Boy - I meant to point out that I'm using the vat numbers supplied adm.
> > Didn't mean to take credit for that :) I was just trying to take his
> > example a little farther.
> >
> > --
> > Tom Shelton
>
>
> Tom,
>
> I tried this code (with proxy server), but i get the following error:
> "The request failed with HTTP status 417: Expectation Failed."
> The error is on the following row:
> currentDate = check.checkVat(countryCode, vatNumber, valid,
> name, address)
>
> Here is my code:
>
> Option Strict On
> Option Explicit On
> Imports BTWCheck.eu.europa.ec
> Imports System.Net
> Imports System
>
>
> Module Module1
>
> Sub Main()
> Dim check As New checkVatService()
> Dim countryCode As String = "BE"
> Dim vatNumber As String = "4179951765"
> Dim valid As Boolean
> Dim currentDate As Date
> Dim datestring As String
> Dim name As String = String.Empty
> Dim address As String = String.Empty
> ' proxy settings
> Dim cr As New System.Net.NetworkCredential("user", "pass",
> "domain")
> Dim pr As New System.Net.WebProxy("10.0.0.9", 8080)
> pr.Credentials = cr
> check.Proxy = pr
>
>
> currentDate = check.checkVat(countryCode, vatNumber, valid,
> name, address)
> If valid Then
> Console.WriteLine(name)
> Console.WriteLine(address)
> Console.WriteLine(currentDate)
> Else
> Console.WriteLine("invalid vat")
> End If
> End Sub
>
>
> End Module
>
> Thanks for your help.
>
>
> Ed

Sorry Ed, I'm hitting the limits of my knowledge of web services. I
haven't ever tried to use a web service through a proxy. I'm assuming
that there is something wrong with your proxy settings? I
unfortuantely don't have a proxy server to try your code against, so I
have no way of helping here. Hopefully, someone will be able to help
you further with this issue.

--
Tom Shelton