Platforms to show: All Mac Windows Linux Cross-Platform

/CURL/WebServices/TIN Check


Required plugins for this example: MBS CURL Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /CURL/WebServices/TIN Check

This example is the version from Wed, 3rd Jan 2023.

Project "TIN Check.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Const XMLTemplate = "<?xml version=""1.0"" encoding=""UTF-8""?><SOAP:Envelope xmlns:SOAP=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:ENC=""http://schemas.xmlsoap.org/soap/encoding/"" xmlns:si=""http://soapinterop.org/xsd""><SOAP:Body><ns1:checkTin xmlns:ns1=""urn:ec.europa.eu:taxud:tin:services:checkTin:types""><ns1:countryCode xsi:type=""xsd:string"">$country$</ns1:countryCode><ns1:tinNumber xsi:type=""xsd:string"">$number$</ns1:tinNumber></ns1:checkTin></SOAP:Body></SOAP:Envelope>"
Control CheckButton Inherits PushButton
ControlInstance CheckButton Inherits PushButton
EventHandler Sub Action() dim c as new CURLSMBS dim xml as string = XMLTemplate xml = Replace(xml, "$country$", TextField1.text) xml = Replace(xml, "$number$", TextField2.text) List.AddRow "Check "+TextField2.text+"..." c.OptionFollowLocation = true c.OptionMaxRedirs = 3 c.OptionPostFields = xml c.OptionUserAgent = "MBS TIN Check 1.0" c.OptionURL = "https://ec.europa.eu/taxation_customs/tin/services/checkTinService" c.OptionPost = true c.SetOptionHTTPHeader array("Content-Type: application/soap+xml; charset=utf-8") dim e as integer = c.Perform dim debugMessage as string = c.DebugMessages dim Result as STring = c.OutputData if e = 0 then dim r as integer = c.GetInfoResponseCode if r = 200 then // ok dim doc as new XmlDocument(result) dim envelope as XmlNode = FindChild(doc, "envelope") dim body as XmlNode = FindChild(envelope, "body") dim checkTinResponse as XmlNode = FindChild(body, "checkTinResponse") dim x as XmlNode = checkTinResponse.FirstChild while x <> nil dim key as string = x.Name dim value as string = getText(x) List.AddRow key+": "+value x = x.NextSibling wend else List.AddRow "HTTP error: "+str(r) end if else List.AddRow "CURL error: "+str(e)+" "+c.LasterrorMessage end if List.ScrollPosition = List.ListCount End EventHandler
End Control
Control TextField1 Inherits TextField
ControlInstance TextField1 Inherits TextField
End Control
Control Label1 Inherits Label
ControlInstance Label1 Inherits Label
End Control
Control TextField2 Inherits TextField
ControlInstance TextField2 Inherits TextField
End Control
Control Label2 Inherits Label
ControlInstance Label2 Inherits Label
End Control
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
Control Label3 Inherits Label
ControlInstance Label3 Inherits Label
End Control
Function FindChild(n as xmlnode, name as string) As XmlNode n = n.FirstChild while n <> nil if n.LocalName = name then Return n end if n = n.NextSibling wend End Function
Function getText(x as XmlNode) As string dim r as XmlNode = x.FirstChild dim parts() as string while r <> nil if r isa XmlTextNode then parts.Append r.Value end if r = r.NextSibling wend Return Join(parts, "") End Function
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project

The items on this page are in the following plugins: MBS CURL Plugin.


The biggest plugin in space...