![]() |
![]() |
| 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
|
||||
|
||||
|
buenos dias !
encantado ramherfer que el componente haya cumplido las expectativas, gracias por tu reconocimiento. Todavía espero que habrá que corregir alguna cosa, me extrañaria mucho que estuviera muy bien. (de hecho acabo de ver un error, porque ahora siempre envia a pre-produccion, asi que en unos dias subire otra version) (abajo pongo lo que hay que corregir, hoy asi rapido pero habrá alguna mejora mas). ontisoft, la primera demo la puedes descartar, era una prueba temprana. la segunda demo es la buena. En el programa que envia desde Excel, no olvidéis seleccionar un certificado del almacén valido e indicar vuestros datos en la pestaña Datos Sistema Informático. Para los que quieran usar el componente sin D7, desde versiones B10 en adelante, pueden hacerlo directamente usando las funciones del servidor. No lo he probado, pero debería funcionar sin mas Para ello, hay que hacer un uses tal que así: uses uTiposVerifactu, uVerifactuFuncs; Aumentar el stack size maximo a: 9048576 Project -> options->linker Tendremos las siguientes funciones disponibles: Os recomiendo que mireis la llamada a esas funciones desde la unidad de componente para D7 a modo de consulta. en la unidad: uTVerifactu.pas Código:
function inicio_sesion( var crearSesion:TVeriFactuInicio ):integer; stdcall; // con sesion: function anadeFactura(sesion:integer; var factura:TRegistroFacturas):integer; stdcall; procedure envio(sesion:integer; var resultadoEnvio:TResultadoEnvio); stdcall; function cierreSesion(sesion:integer; cierre:TCierreSesion):boolean; function resetSesion(sesion:integer; cierre:TCierreSesion):boolean; function consultar(sesion:integer; var resultado:TConsultaResultado):boolean; // sin sesion: procedure validarNIF(var nifvalidador:TValidadorNif); // auxiliares procedure clear_factura(afactura:TRegistroFactura); procedure clear_sesion(sesion:integer); // Certificados procedure GetCertificados(var certificados:TCertificados); procedure GetAliasCertificado(var certificados:TAliasCert); function BUSCAR_CERTIFICADO_SERIAL(Nombre_Certificado: String): string; Correccion para permitir el envio a otra url Unidad uTVeriFactu Reemplazar esta funcion, por este codigo: Código:
//
// crear una sesion
//
function TVerifactu.inicio:boolean;
var
inicioVeriFactu : TVeriFactuInicio;
filemap,filehandle : longint;
begin
checkAutoRun;
serverHandle := FindWindow(nil, pchar(serverName) );
if IsWindow( serverHandle ) then
begin
inicioVeriFactu.simular:=simular;
inicioVeriFactu.emisor:=emisor;
inicioVeriFactu.sistemaInformatico:=sistemaInformatico;
inicioVeriFactu.nombreCertificado:=Certificado;
inicioVeriFactu.passwordCertificado:=passwordCertificado;
inicioVeriFactu.SaveXmlEnvio:=fSave;
inicioVeriFactu.SaveXMLResultado:=fResp;
inicioVeriFactu.incidencia:=false;
inicioVeriFactu.resultadoSesion:=-1;
if fEndPoint<>'' then
inicioVeriFactu.direccion_envio:=fEndPoint
else
inicioVeriFactu.direccion_envio:='https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';
filemap:=saveNewFileMappingData(@inicioVeriFactu, sizeof(inicioVeriFactu), filehandle);
SENDMESSAGE( serverHandle, WM_VERIFACTU_INICIO, 0, filemap );
loadFileMappingData(@inicioVeriFactu, sizeof(inicioVeriFactu), filemap);
closeFileMappingData(filehandle);
if inicioVeriFactu.resultadoSesion<>0 then
begin
sesion:=inicioVeriFactu.resultadoSesion;
result:=true;
end
else
begin
result:=false;
end;
end
else
result:=false;
end;
Última edición por seccion_31 fecha: 01-02-2025 a las 08:56:13. |
|
#2
|
||||
|
||||
|
Bueno pues parece ser que me esta marcando todos los envíos como incidencia.
Las facturas las genero con la fecha del día actual y por defecto el tiempo máximo es de 60 segundos, controlado por timer que se resetea y actualizaal final del envio según el tiempo de espera que informe la AEAT en la respuesta del envio. Desconozco si me pasa solo a mi. Voy a ver si le doy un repaso a todo.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
|
#3
|
||||
|
||||
|
Lo acabo de probar con la demostración de excel y funciona correcto (he lanzado 3 facturas). No veo el campo incidencia en el XML ni en la web de la AEAT.
Asegurate que usas la compilacion que deje en el rar. MSG_BERLIN\Win32\Debug\msgverifactu.exe del 2 de enero (no creo que haya otra ahi dentro) Despues del envio, puedes abrir el servidor verifactu de la barra de tareas, ir a la pestaña de la sesion y ver a partir de que factura se activa la incidencia. (de ahi en adelante todo va con incidencia) Saludos Cita:
|
|
#4
|
||||
|
||||
|
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 ! |
|
#5
|
||||
|
||||
|
¿Qué problema te da exactamente?
|
|
#6
|
||||
|
||||
|
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. |
|
#7
|
|||
|
|||
|
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, |
|
#8
|
||||
|
||||
|
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 |
|
#9
|
|||
|
|||
|
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. |
|
#10
|
||||
|
||||
|
Cita:
Cita:
https://drive.google.com/file/d/17qT...ew?usp=sharing Voy a revisar mi código a ver si veo algo raro comparandolo con la demo y si no veo nada haré lo propio con el del servidor.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
|
#11
|
||||
|
||||
|
Cita:
Cita:
Cita:
la reemplazo por: Cita:
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. Última edición por ramherfer fecha: 02-02-2025 a las 12:35:21. |
|
#12
|
||||
|
||||
|
ramherfer
Creo que estas suministrando la fecha en el record factura.actual.fechaFactura con el formato 01-01-2025 cuando deberías simplemente cargar la fecha tal cual 01/01/2025 cuando se envía la función altafactura_F1_F2_R4_R5_verifactu realiza la conversión. Ya me lo confirmaras. Saludos ! |
|
#13
|
||||
|
||||
|
Cita:
Ok, corrijo la modificación y realizada.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
![]() |
| 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 |
|