![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
¿Alguien podría poner un xml de ejemplo?
estoy intentándolo con https://ec.europa.eu/taxation_custom...inService.wsdl pero no consigo avanzar |
|
#2
|
||||
|
||||
|
Cita:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <tns1:checkVat xmlns:tns1="urn:ec.europa.eu:taxud:vies:services:checkVat:types"> <tns1:countryCode>FR</tns1:countryCode> <tns1:vatNumber>FR12345678910</tns1:vatNumber> </tns1:checkVat> </soap:Body> </soap:Envelope> vatNumber creo que no hace falta ponerle los 2 digitos del pais por delante, pero si los pones tampoco pasa nada. |
|
#3
|
|||
|
|||
|
Cita:
Código PHP:
|
|
#4
|
|||
|
|||
|
Pués ni idea, están devolviendo error.
He hecho un trace: Cita:
|
|
#5
|
|||
|
|||
|
Edito:
Parece que eso que he puesto no es un error, es un aviso, pero es cierto que no devuelven nada. Esperemos que sea algo puntual. |
|
#6
|
|||
|
|||
|
Cita:
"http://ec.europa.eu/taxation_customs/vies/services/checkVatService" 'web para comprobacion de VATs "https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl" 'web para comprobacion de VATs pero solo consigo errores 400 o 405 si lo intento con GET en lugar de POST ![]() también lo estoy probando con el TIN, pero tampoco consigo avanzar.... "https://ec.europa.eu/taxation_customs/tin/services/checkTinService.wsdl" 'web para comprobacion de TINs lo he probado con y sin certificado, sin diferencia alguna ¿que estoy haciendo mal? |
|
#7
|
|||
|
|||
|
Buenos días, ya os he comentado en alguna ocasión que no trabajo en Delphi sino con Visual Foxpro, pero estoy en estos foros por su calidad y buena orientación. Me habéis sacado de apuros en muchas ocasiones.
Para la consulta de VATs yo tengo este proceso en Visual Foxpro que funciona, pero no se pasarlo a Delphi. Lo adjunto por si alguno sabe. Los datos de prueba que adjunto son válidos y devuelve los datos correctos. LOCAL lcCountryCode, lcUatNumber, lcUrl, loHTTP, lcResponseText, loXML, lcValid, lcName, lcAddress * lcCountryCode = "LU" && Código de país (ej. ES para España, DE para Alemania) lcVatNumber = "20260743" && Número de IVA sin el prefijo del país *!* Construir la URL para la API REST de VIES lcUrl = "https://ec.europa.eu/taxation_customs/vies/rest-api/ms/" + lcCountryCode + "/vat/" + lcVatNumber *!* Crear el objeto MSXML2.ServerXMLHTTP para la petición HTTP loHTTP = CREATEOBJECT("MSXML2.ServerXMLHTTP") IF TYPE("loHTTP") = "O" AND NOT ISNULL(loHTTP) TRY loHTTP.OPEN("GET", lcUrl, .F.) && .F. para síncrono, .T. para asíncrono loHTTP.SEND() lcResponseText = loHTTP.RESPONSETEXT *!* Procesar la respuesta JSON (la API REST devuelve JSON) *!* En VFP, el parseo de JSON no es nativo, necesitarás una función o librería de terceros *!* para parsear JSON, o un procesamiento de cadenas si la respuesta es simple. *!* Ejemplo simplificado de cómo buscar "valid" en el texto: * Si la respuesta es JSON, podrías tener algo como: {"countryCode":"ES","vatNumber":"A28014878","requestDate":"2025-07-04+02:00","valid":true,"name":"MARCADONA","address":"CALLE DE LA CERA, 123\nBARCELONA"} IF ATC(["isValid" : true], lcResponseText) > 0 lcValid = .T. MESSAGEBOX("VAT válido.", 64, "Resultado VIES") * Extraer nombre y dirección (requiere parseo JSON más sofisticado o manejo de cadenas) * Por ejemplo, para un parsing básico de "name": lnPosName = ATC(["name" : "], lcResponseText) IF lnPosName > 0 lcTemp = SUBSTR(lcResponseText, lnPosName + LEN(["name" : "])) lnEndName = AT('"', lcTemp) lcName = IIF(lnEndName > 0, SUBSTR(lcTemp, 1, lnEndName - 1), "") MESSAGEBOX("Nombre: " + lcName, 64, "Datos VIES") ENDIF * Y similar para "address" lnPosAddress = ATC(["address" : "], lcResponseText) IF lnPosAddress > 0 lcTemp = SUBSTR(lcResponseText, lnPosAddress + LEN(["address" : "])) lnEndAddress = AT('"', lcTemp) lcAddress = IIF(lnEndAddress > 0, SUBSTR(lcTemp, 1, lnEndAddress - 1), "") lcAddress = STRTRAN(lcAddress, "\n", CHR(13)+CHR(10)) && Reemplazar saltos de línea JSON por CR/LF MESSAGEBOX("Dirección: " + lcAddress, 64, "Datos VIES") ENDIF ELSE lcValid = .F. IF ATC(["isValid" : false], lcResponseText) > 0 lnPosName = ATC(["userError" : "], lcResponseText) IF lnPosName > 0 lcTemp = SUBSTR(lcResponseText, lnPosName + LEN(["userError" : "])) lnEndName = AT('"', lcTemp) lcName = IIF(lnEndName > 0, SUBSTR(lcTemp, 1, lnEndName - 1), "") MESSAGEBOX("VAT: " + lcName, 64, "Datos VIES") ENDIF else MESSAGEBOX("VAT no válido o error en la consulta.", 48, "Resultado VIES") Endif IF !EMPTY(lcResponseText) _cliptext = lcResponseText Endif ENDIF CATCH TO loException MESSAGEBOX("Error al conectar o procesar: " + loException.MESSAGE, 16, "Error VIES") ENDTRY ELSE MESSAGEBOX("No se pudo crear el objeto MSXML2.ServerXMLHTTP. Asegúrate de que esté registrado.", 16, "Error") ENDIF RELEASE loHTTP Espero que os sirva. Un saludo. |
|
#8
|
|||
|
|||
|
Los ejemplos son perfectos, era yo que la estaba liando al motar el xml!!!!
, ya he conseguido que me responda Muchas gracias por vuestra ayuda!!! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Verificación de RUC Peru. | F3niX | Varios | 7 | 26-05-2017 04:36:50 |
| Rutina de verificacion de campos | JosepMiquel | Varios | 3 | 08-12-2007 19:43:19 |
| Búsqueda sin imagen de verificación | kuan-yiu | La Taberna | 8 | 13-11-2007 18:22:10 |
| Verificación de los datos grabados en CD o DVD | rretamar | API de Windows | 24 | 16-01-2007 06:32:47 |
| Verificación de dni | luna | Varios | 4 | 29-05-2004 21:33:46 |
|