![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#7
|
|||
|
|||
Validador nif de la agencia tibutaria (AEAT)
Requisitos:
- Importar la wsdl: "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2.wsdl" - Tener capicom.dll registrada (regsvr32 C:\...\capicom.dll) y - Importar el componente capicom.DLL creará el fuente CAPICOM_TBL - Open ssl. (libeay.pas y openSsslUtils.pas). Un form "TMain", un TEdit "edNif", un TEdit "edNombre" un TEdit "edCertificado", un TmaskEdit "mskCertPass" un boton "btnValidarESNif" opcional: un TEdit "edResultado", un TEdit "edDNIValidado", un TEdit "edNombreValidado" uses Código:
uses // Windows API Winapi.Windows, Winapi.Messages, WinApi.WinInet, // System System.SysUtils, System.Variants, System.Classes, System.IniFiles, System.UITypes, System.Win.ComObj, System.Net.URLClient, System.Net.HttpClient, System.Net.HttpClientComponent, // Rest - JSON REST.Json, // Soap Soap.SOAPHTTPClient, Soap.SOAPHTTPTrans, Soap.InvokeRegistry, Soap.Rio, // aeat NIF VAlidador VNifV21; // Módulo creado al importar el wsdl CAPICOM_TLB, // Unidad creada al importar la dll de capicom. libeay32, OpenSSLUtils; Código:
type PCCERT_CONTEXT = type Pointer; Código:
function TMain.validarESNif(): VNifV2Sal; var nifValidatorWS: VNifV2; VNifV2Entrada: VNifV2Ent; VNifV2Salida: VNifV2Sal; contri: Contribuyente; HTTPRIO: THTTPRIO; begin HTTPRIO := THTTPRIO.create(self); HTTPRIO.HTTPWebNode.OnBeforePost := HTTPWebNode1BeforePost; nifValidatorWS := GetVNifV2(false, '', HTTPRIO); if nifValidatorWS <> nil then begin contri := Contribuyente.Create; contri.Nif := edDni.text; contri.Nombre := edNombre.text; setLength(VNifV2Entrada, 1); VNifV2Entrada[0] := contri; try VNifV2Salida := nifValidatorWS.VNifV2(VNifV2Entrada); except on E: EDOMParseError do ShowMessage('Sin respuesta: ' + #10 + #13 + E.message); end; end; result := VNifV2Salida; end; procedure TMain.HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); begin SetCertificate(trim(edCertificado.text), mskCertPass.text, Data); end; procedure TMain.IdSSLIOHandlerGetPassword(var Password: string); begin Password := mskCertPass.text; end; procedure TMain.btnValidarESNifClick(Sender: TObject); var VNifV2Salida: VNifV2Sal; begin VNifV2Salida := validarESNif(); if VNifV2Salida <> nil then begin edResultado.Text := VNifV2Salida[0].Resultado; edDNIValidado.Text := VNifV2Salida[0].Nif; edNombreValidado.Text := VNifV2Salida[0].Nombre; // No importa por que por la LODP no devuelven el nombre. Dejan lo que se envía. end else ShowMessage('No se ha podido validar el NIF: ' + edDni.Text); end; Última edición por iMia fecha: 30-01-2023 a las 10:59:59. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Validar un XML | r_e_g_2007 | Varios | 0 | 05-11-2011 08:00:21 |
validar RFC.. | tebre | Varios | 12 | 06-01-2009 18:48:55 |
Validar | Elite237 | OOP | 1 | 28-07-2007 23:25:30 |
Validar Nif | Colgueit | OOP | 12 | 10-05-2006 02:50:28 |
validar en qry | alcides | SQL | 2 | 06-01-2004 18:11:19 |
![]() |
|