Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2022
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Pues ahora que lo dices... después de poner el post me quedé dandole vueltas precisamente a ese detalle. Igual los únicos que controlan son los comunitarios y no los extranjeros. Es un tema que tengo que confirmar.

Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 30-01-2023
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
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;
declarar el tipo:

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.
Responder Con Cita
  #3  
Antiguo 30-01-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Gracias iMia.

¿Podrías decirnos qué tipos de documentos valida esto?

Saludos.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 30-01-2023
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Gracias iMia.

¿Podrías decirnos qué tipos de documentos valida esto?

Saludos.

Valida que el NIF/nombre sean correctos (en España)

Saludos

Pd.:
en genérico es es uso de un certificado con http, y con capicom, y no tener que pagar componentes de terceros (blackbox, inet, etc...)

Última edición por iMia fecha: 30-01-2023 a las 11:51:20.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 10:50:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi