![]() |
![]() |
| Paypal | 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. |
|
|
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 |
|