Club Delphi  
    Paypal   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

Colaboración Paypal con ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2024
JoseLeeTo JoseLeeTo is offline
Miembro
 
Registrado: jun 2021
Posts: 78
Poder: 5
JoseLeeTo Va por buen camino
Question Certificado no válido, o no seleccionado correctamente

Buenos dias a todos.

Gracias en primer lugar por vuestra a ayuda. Pude desarrollar el envio TicketBai en su momento, gracias a este foro.

Tengo una duda al enviar. Trabajo con C# (Visual Studio 2015).
Cada vez que trato de enviar, obtengo siempre una respuesta en HTML, advirtiéndome que "el certificado no es correcto, o no se ha seleccionado correctamente" - Error 403.
He instalado el certificado en todos los navegadores que tengo, en el almacén de "Personal", pero a la hora de enviar, selecciono dicho certificado (es el mío personal de la FNMT - y es funcional dado que entro en las sedes perfectamente, he realizado la declaración con el mismo, etc...) .... pero la respuesta a través del código es un HTML (no un XML) con ese error 403.

¿Alguien ha logrado enviar sin problemas, teniendo el certificado instalado en el navegador? ¿Qué puede estar ocurriendo para que no esté validando mi certificado?

Mil gracias de antemano.
Un saludo
  #2  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por JoseLeeTo Ver Mensaje
Buenos dias a todos.

Gracias en primer lugar por vuestra a ayuda. Pude desarrollar el envio TicketBai en su momento, gracias a este foro.

Tengo una duda al enviar. Trabajo con C# (Visual Studio 2015).
Cada vez que trato de enviar, obtengo siempre una respuesta en HTML, advirtiéndome que "el certificado no es correcto, o no se ha seleccionado correctamente" - Error 403.
He instalado el certificado en todos los navegadores que tengo, en el almacén de "Personal", pero a la hora de enviar, selecciono dicho certificado (es el mío personal de la FNMT - y es funcional dado que entro en las sedes perfectamente, he realizado la declaración con el mismo, etc...) .... pero la respuesta a través del código es un HTML (no un XML) con ese error 403.

¿Alguien ha logrado enviar sin problemas, teniendo el certificado instalado en el navegador? ¿Qué puede estar ocurriendo para que no esté validando mi certificado?

Mil gracias de antemano.
Un saludo
El certificado debe ser del mismo cir que el emisor de la factura, en caso contrario debes rellenar los nodos de envio por terceros.
  #3  
Antiguo 28-10-2024
JoseLeeTo JoseLeeTo is offline
Miembro
 
Registrado: jun 2021
Posts: 78
Poder: 5
JoseLeeTo Va por buen camino
El certificado no es correcto, o no se ha seleccionado correctamente

Cita:
Empezado por ermendalenda Ver Mensaje
El certificado debe ser del mismo cir que el emisor de la factura, en caso contrario debes rellenar los nodos de envio por terceros.
Muchas gracias.


Entiendo que con lo de "cir", te refieres al nif. ¿No?

El certificado es el mío personal - de la FNMT - y las pruebas las estoy realizando con un emisor de facturas con mi nombre y NIF.
Pero el error, es el que comento con código 403 - El certificado no es correcto, o no se ha seleccionado correctamente.

Creo que el error, no es en la validación del XML como tal, porque ni llega a validarlo. No devuelve un XML de respuesta de error... sino un HTML, como código de error de ese tipo.
Les consulté, y me contestaron que en ese tipo de errores, devolvían un HTML (la misma página de error que si conectas a sus servicios, y no te validas).
Al existir un error previo a la validación del XML (de certificado según ellos), creo que ni siquera valida

Y es que no se me ocurre nada más, ya que entiendo que solamente hay que instalar dicho certificado en el almacén Personal.
Al menos en TicketBai, funciona correctamente así desde siempre.


Muchas gracias
  #4  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por JoseLeeTo Ver Mensaje
Muchas gracias.


Entiendo que con lo de "cir", te refieres al nif. ¿No?

El certificado es el mío personal - de la FNMT - y las pruebas las estoy realizando con un emisor de facturas con mi nombre y NIF.
Pero el error, es el que comento con código 403 - El certificado no es correcto, o no se ha seleccionado correctamente.

Creo que el error, no es en la validación del XML como tal, porque ni llega a validarlo. No devuelve un XML de respuesta de error... sino un HTML, como código de error de ese tipo.
Les consulté, y me contestaron que en ese tipo de errores, devolvían un HTML (la misma página de error que si conectas a sus servicios, y no te validas).
Al existir un error previo a la validación del XML (de certificado según ellos), creo que ni siquera valida

Y es que no se me ocurre nada más, ya que entiendo que solamente hay que instalar dicho certificado en el almacén Personal.
Al menos en TicketBai, funciona correctamente así desde siempre.


Muchas gracias
Sí así es.
Entonces no se me ocurre otra cosa que no sea que hay algún error en la llamada desee donde lees el certificad, que el firewall esté cortando algo o tengas desactivado algo de llamadas tsl..
  #5  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
otra curiosidad

Sobre lo que acaban de publicar en el boe:
sobre el hash anterior lo que tiene que ir en la HuellaAnterior:
Cita:
4º Los primeros 64 caracteres de la huella o «hash» del registro de facturación inmediatamente anterior.
Entonces pienso yo que tienen previsto en algun momento pasar al hash512 o cualquiera sabe, por que el hexadecimal del hash256 SIEMPRE tiene 64 caracteres.
  #6  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
A ver si alguien puede consultar esto

Hola, los que trabajamos en programas de escritorio tenemos aqui un problema:
Cita:
f)En cualquier caso, el obligado tributario usuario del sistema informático deberá asegurarse de que la fecha y hora empleadas por dicho sistema informático para fechar los registros de facturación son exactas, con un margen máximo de error admitido de un minuto
Ya que si permitimos en algún momento trabajar sin internet no podemos controlar que por alguna incidencia se cambie el reloj. Incluso que algun listo se las "sepa todas" y quiera cambiar una factura de fecha. Y tampoco podemos cortar de que no se pueda facturar sin conexion

Por favor que alguien haga la consulta, yo los tengo bombardeados.

Me respondo:
Si no hay conexion ya hay que marcar incidencia pase lo que pase.
  #7  
Antiguo 28-10-2024
Zento Zento is offline
Miembro
 
Registrado: may 2017
Posts: 22
Poder: 0
Zento Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola, los que trabajamos en programas de escritorio tenemos aqui un problema:


Ya que si permitimos en algún momento trabajar sin internet no podemos controlar que por alguna incidencia se cambie el reloj. Incluso que algun listo se las "sepa todas" y quiera cambiar una factura de fecha. Y tampoco podemos cortar de que no se pueda facturar sin conexion

Por favor que alguien haga la consulta, yo los tengo bombardeados.

Me respondo:
Si no hay conexion ya hay que marcar incidencia pase lo que pase.
El obligado tributario del sistema informático es el usuario final. Así que tú como desarrollador puedes estar tranquilo. Si cambia la fecha o la hora tampoco debería funcionar SSL. En cualquier Windows actual eso está más que cubierto.
  #8  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Zento Ver Mensaje
El obligado tributario del sistema informático es el usuario final. Así que tú como desarrollador puedes estar tranquilo. Si cambia la fecha o la hora tampoco debería funcionar SSL. En cualquier Windows actual eso está más que cubierto.
Bueno, realmente si funciona el SSL, ya lo he probado enviando como si tuviera tabto el registro como el equipo en 2021:
Cita:
AltaIncorrecto1152La fecha de Expedicion de la factura no puede ser inferior al indicado en la Orden Ministerial.
A ver que puedeo hacer con este mensaje, por que como se emitan facturas mal de fecha/año tengo un problema.
Se me ocurre que si no puedo verificar la fecha que no emita la factura aunque deje facturar hasta que se solucione y pongo el mensaje ese que dicen que hay problemas.

Última edición por ermendalenda fecha: 28-10-2024 a las 12:17:45.
  #9  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Zento Ver Mensaje
El obligado tributario del sistema informático es el usuario final. Así que tú como desarrollador puedes estar tranquilo. Si cambia la fecha o la hora tampoco debería funcionar SSL. En cualquier Windows actual eso está más que cubierto.

Solucuionado.
Lo de 1 minuto solo es obligatorio para los NO VERIFACTU, no es aplicable a los VERIFACTU
  #10  
Antiguo 28-10-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.761
Poder: 7
ermendalenda Va por buen camino
otra duda

A ver como interpretais este punto en distintas instalaciones, por ejemplo tengo una instalacion que tiene varias empresas y los demas solo 1. COn lo cual en la que tiene varias empresas solo enviara como 1. Pero en este punto habla como "sistema informatico", entonces ya me ha hecho un lio, sistema informatico es individual, tengo que hacerf una declaracion responsable por cada sif?, la respuesta obvia es que "No", pero os pasa como a mi que quedan dudas?
Cita:
Articulo 15 sobre la declaración responsable:
f)Indicación de si el sistema informático a que se refiere la declaración responsable permite ser usado por varios obligados tributarios o por un mismo usuario para dar soportete a la facturación de varios obligados tributarios, de acuerdo con las especificaciones dadas en el apartado 2.6 del anexo.
  #11  
Antiguo 28-10-2024
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por JoseLeeTo Ver Mensaje
Buenos dias a todos.

Gracias en primer lugar por vuestra a ayuda. Pude desarrollar el envio TicketBai en su momento, gracias a este foro.

Tengo una duda al enviar. Trabajo con C# (Visual Studio 2015).
Cada vez que trato de enviar, obtengo siempre una respuesta en HTML, advirtiéndome que "el certificado no es correcto, o no se ha seleccionado correctamente" - Error 403.
He instalado el certificado en todos los navegadores que tengo, en el almacén de "Personal", pero a la hora de enviar, selecciono dicho certificado (es el mío personal de la FNMT - y es funcional dado que entro en las sedes perfectamente, he realizado la declaración con el mismo, etc...) .... pero la respuesta a través del código es un HTML (no un XML) con ese error 403.

¿Alguien ha logrado enviar sin problemas, teniendo el certificado instalado en el navegador? ¿Qué puede estar ocurriendo para que no esté validando mi certificado?

Mil gracias de antemano.
Un saludo
Hola te respondo por aqui y asi le puede servir a alguien mas.


En el App.config teneis que poner que usais la identificacion con certificado, asi:
Cita:
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
Os pongo como queda en el app config.

Código:
    <client>
      <endpoint address="https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP"
        binding="basicHttpBinding" bindingConfiguration="VNifV2SoapBinding"
        contract="ChecaNifsActivos.VNifV2" name="VNifPort1" />
      <endpoint address="https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"
        binding="basicHttpBinding" bindingConfiguration="sfVerifactu"
        contract="ServicioVerifactu.sfPortTypeVerifactu" name="SistemaVerifactuPruebas" />
      <endpoint address="https://prewww10.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"
        binding="basicHttpBinding" bindingConfiguration="sfVerifactu1"
        contract="ServicioVerifactu.sfPortTypeVerifactu" name="SistemaVerifactuSelloPruebas" />
    </client>
    <bindings>
      <basicHttpBinding>
        <binding name="VNifV2SoapBinding">
         <security mode="Transport">
            <transport clientCredentialType="Certificate" />     

          </security>
        </binding>
        <binding name="VNifV2SoapBinding1" />
        <binding name="sfVerifactu">
          <security mode="Transport">
            <transport clientCredentialType="Certificate" />
          </security>
        </binding>
        <binding name="sfVerifactu1">
          <security mode="Transport">
            <transport clientCredentialType="Certificate" />
          </security>
        </binding>
        <binding name="sfVerifactu2" />
        <binding name="sfRequerimiento" />
      </basicHttpBinding>
    <customBinding>
        <binding name="sfVerifactu">
          <textMessageEncoding messageVersion="Soap11" writeEncoding="utf-8" />
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>
Tambien os pongo la funcion para seleccionar los certificados del sistema y luego almacenarlos en bytes[] para guardarlos en la base de datos.


Código:
        public static X509Certificate2 ElegirCertificado()
        {
            try
            {
                X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
                X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
                X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Selección de Certificados", "Seleccione un certificado de la lista para firmar la factura electrónica", X509SelectionFlag.SingleSelection);

                X509Certificate2Enumerator Certificado = scollection.GetEnumerator();
                X509Certificate2 cert = new X509Certificate2();
                if (scollection.Count > 0)
                {
                    X509Certificate2Enumerator en = scollection.GetEnumerator();
                    en.MoveNext();
                    cert = en.Current;
                    if (DateTime.Now > cert.NotAfter)
                    {
                        throw new Exception("Certificado caducado");
                    }
                    else
                    {
                        return cert;
                    }
                }

                if (fcollection.Count == 0)
                {
                    MessageBox.Show("No hay certificados electrónicos instalados en tu equipo");
                }
                else
                {
                    if (scollection.Count == 0)
                    {
                        MessageBox.Show("No has seleccionado ningún certificado");
                    }
                }
                store.Close();
                var temp = scollection.OfType<X509Certificate2>();
                var cert1 = scollection.OfType<X509Certificate2>().Where(x => x.Subject == "CN=FNMT-RCM").First(); // + Program.configTaller.NombreTaller).First();
                return cert;
            }
            catch (Exception ex)
            {
                //  throw ex;
            }
            //X509Store store = new X509Store(StoreLocation.CurrentUser);
            //store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
            //X509Certificate2Collection certificates = store.Certificates;
            //X509Certificate2Collection foundCertificates = certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
            //var cert = foundCertificates.OfType<X509Certificate>().Where(x => x.Subject == "CN="+Program.configTaller.NombreTaller).First();
            return null;
        }
Esto devuelve el certificado seleccionado.
Luego simplemente lo exportamos a bytes con una contraseña por nuestra seguridad.
Código:
 var certificado = ConfigDB.ElegirCertificado();// CertificadoSeleccionado();
            if(null != certificado)
            {
                string caducidad = certificado.GetExpirationDateString();
                Program.certificado = certificado.Export(X509ContentType.Cert, Program.passcertificado);<-- Este es el password que usaremos para guardar/usar el certificado.
                txtCaducidad.Text = caducidad;
                ConfigDB.ActualizarCertificado(1, Program.certificado, caducidad);
            }
Tema Cerrado


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
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 20:25:00.


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