![]() |
![]() |
| 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
|
||||
|
||||
|
Hay algunas cosas que me gustaria comentar
1) Alguien ha conseguido hacer funcionar el httprio desde una DLL ? si fuera asi, y tuviera el codigo, lo cambiaria a funcionamiento por DLL que me parece mas elegante. 2) ¿Alguien ha probado el componente, indicando en vez del nombre del certificado el nombre de un archivo.pfx y en passwordCertificado su contraseña? Saludos ! |
|
#2
|
||||
|
||||
|
¿Qué problema te da exactamente?
|
|
#3
|
||||
|
||||
|
en la DLL error de proteccion general. justo al llamar la funcion de enviar. El mismo codigo en un ejecutable sin problemas.
googleando en algunos sitios lei que no se podia, pero siempre hay que asegurarse. |
|
#4
|
|||
|
|||
|
Cita:
El código del certificado para archivo pfx funciona perfectamente tanto para .pfx como para .p12. Lo he probado en un servicio de windows que estoy haciendo en delphi 10.2. Muchas gracias por el aporte! Saludos, |
|
#5
|
||||
|
||||
|
hola Quim Herrera !
¿estas seguro que funciona? ahora mirando la funcion:
Yo creo que esto fallara:
Deberia ser:
He añadido la extension .P12 para reconocer el archivo ¿puedes confirmarlo por fa? Slds ! Última edición por Neftali [Germán.Estévez] fecha: 05-02-2025 a las 12:39:55. Razón: añadir TAGs al mensaje |
|
#6
|
|||
|
|||
|
Cita:
Exacto, hay que cambiar por y ya funciona. Saludos, Última edición por Neftali [Germán.Estévez] fecha: 05-02-2025 a las 12:44:53. |
|
#7
|
||||
|
||||
|
Cuida que: hay que hacer algun cambio mas en la funcion consultar (para que reconoca el PFX), y en los "ifs" para que soporten las dos extensiones.
Ya lo he modificado, perfecto. gracias ! |
|
#8
|
||||
|
||||
|
Estoy probando el certificado por fichero y contraseña asignandole el path del archivo del archivo de certificdado a la variable VerifactuD7.Certificado y la contraseña en VerifactuD7.passwordCertificado.
No se si es lo correcto, pero me da un error al cotejar. He realizado la corrección PFX := TFile.ReadAllBytes('ArchivoDelCertificado.PFX' ); por PFX := TFile.ReadAllBytes( cert ); en el servidor antes de hacer la prueba. Un saludo!
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
|
#9
|
||||
|
||||
|
ramherfer
sustituye esta funcion: uVerifactuFuncs y recompila el servidor B10 Código:
function consultar(sesion:integer; var resultado:TConsultaResultado):boolean;
var
consulta : ConsultaFactuSistemaFacturacion; // Objeto a enviar
res : RespuestaConsultaFactuSistemaFacturacionType; // Respuesta tras el envio
HTTPRIO1 : THTTPRIO;
j : integer;
direccion_envio, estado : string;
eventos : TEventosHttpPrio;
eventosWebNode: TEventosWebNode;
begin
consulta:=ConsultaFactuSistemaFacturacion.Create;
consulta.Cabecera:=CabeceraConsultaSf.Create;
consulta.Cabecera.ObligadoEmision:=ObligadoEmisionConsultaType.Create;
consulta.Cabecera.ObligadoEmision.NombreRazon:=sesiones[sesion].inicio.emisor.NombreRazonEmisor;
consulta.Cabecera.ObligadoEmision.NIF:=sesiones[sesion].inicio.emisor.nifEmisor;
consulta.FiltroConsulta:=LRFiltroRegFacturacionType.Create;
consulta.FiltroConsulta.PeriodoImputacion:=PeriodoImputacionType.Create;
consulta.FiltroConsulta.PeriodoImputacion.Ejercicio:=resultado.Cabecera.ejercicio;
consulta.FiltroConsulta.PeriodoImputacion.Periodo:=veriFactuPeriodo( resultado.Cabecera.periodo );
if resultado.Cabecera.NumSerieFactura='' then
begin
consulta.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Desde:=verifactuFecha(datetoStr(resultado.Cabecera.dfecha));
consulta.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Hasta:=verifactuFecha(datetoStr(resultado.Cabecera.hfecha));
end
else
begin
consulta.FiltroConsulta.NumSerieFactura:=resultado.Cabecera.NumSerieFactura;
end;
eventos:=TEventosHttpPrio.Create;
eventos.fileNameBefore :=sesiones[sesion].saveXMLenvio;
eventos.fileNameAfter :=sesiones[sesion].saveXMLResult;
eventosWebNode:=TEventosWebNode.Create;
eventosWebNode.sesion:=sesion;
HTTPRIO1:=THTTPRIO.create(nil);
HTTPRIO1.onBeforeExecute:=eventos.BeforeExecute;
HTTPRIO1.onAfterExecute :=eventos.AfterExecute;
// Cargar certificado del disco
if ( pos('.PFX',uppercase(sesiones[sesion].inicio.nombreCertificado))<>0) or
( pos('.P12',uppercase(sesiones[sesion].inicio.nombreCertificado))<>0) then
HTTPRIO1.HTTPWebNode.onBeforePost:=eventosWebNode.WebNodeBeforePost;
// --> envío pre-produccion: 'https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';
try
// Cargar certificado del almacen
if ( pos('.PFX',uppercase(sesiones[sesion].inicio.nombreCertificado))=0) and
( pos('.P12',uppercase(sesiones[sesion].inicio.nombreCertificado))=0) then
HTTPRIO1.HTTPWebNode.ClientCertificate.SerialNum := Buscar_Certificado_SERIAL( sesiones[sesion].inicio.nombreCertificado ); // coloca el certificado
direccion_envio :=sesiones[sesion].inicio.direccion_envio;
res:= RespuestaConsultaFactuSistemaFacturacionType.Create;
res:= GetsfPortTypeVerifactu( false, direccion_envio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion( consulta ); // Enviarlo !
// resultado del envio:
resultado.ConDatos:=(res.ResultadoConsulta=ResultadoConsultaType.ConDatos);
resultado.error :=false;
resultado.errorDes:='';
procesarConsulta(res,resultado );
except
on E:Exception do
begin
resultado.ConDatos:=false;
resultado.error:=true;
resultado.errorDes:=Format('(%s)-%s',[E.ClassName, E.Message]);
result:=false;
exit;
end;
// Finalmente:
// HTTPRIO1.free; //<- no puede ser destruido con NIL como constructor
//eventos.Free;
end;
result:=true;
end;
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? | Maska10 | Temas legales | 2 | 07-12-2024 12:34:47 |
| Demo de una applicación para una estación de enfermera con RAD Studio | AgustinOrtu | La Taberna | 1 | 21-07-2015 17:41:35 |
| Demo Delphi, EMail | Caral | Internet | 1 | 19-12-2006 00:37:56 |
| Demo de delphi 2005 | mazinger | Varios | 2 | 18-12-2004 09:23:09 |
| El Rave que viene con Delphi es una Demo? | apicito | Impresión | 0 | 04-06-2003 11:33:36 |
|