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
  #81  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.015
Poder: 22
keys Va por buen camino
Cuando el emisor de una factura es español hay que rellenar solo la parte de contraparte el nombre y el cif. La parte del idotro es para cuando no es nacional.

<sii:Contraparte>
<sii:NombreRazon>EMPRESAYYYYYYYY</sii:NombreRazon>
<sii:NIF>94234500B</sii:NIF>
</sii:Contraparte>
Responder Con Cita
  #82  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 109
Poder: 8
seccion_31 Va por buen camino
Hola !

Para keys, necesitaría un ejemplo de los objetos que creáis para introducir una factura de exportación o intracomunitaria.


En mi ejemplo para facturas emitidas:
ARegistroLRFacturasEmitidas[ i ].FacturaExpedida.TipoDesglose.desglosefactura.sujeta.noexenta.desgloseIVA


¿para exportación ?


¿para intracomunitaria?



Virman: Si, van en unidades separadas, pero es lo mismo. El problema es que todavía no conecta con la AEAT. Yo sigo con el anterior hasta el 7 de febrero.
Virman: estoy empezando con las recibidas. tardare en llegar ahí, por dificultades con mi fichero de facturas recibidas.
Keys: ¿has probado a enviar mas de 15 facturas emitidas a la vez?
Responder Con Cita
  #83  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.456
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por keys Ver Mensaje
Hola a todos!

Yo en vez de utilizar la unit Soap.SOAPHTTPTrans.pas que va en el ejemplo utilizo la unit que viene con delphi. Esta unit no tiene la opción de añadir el certificado directamente, lo que hago es asignarlo a un objeto THTTPRIO, de esta forma no dependo de esta unit que no se si funcionará en futuras versiones de delphi.

No se por que en el ejemplo se utilizó una propia en vez de la de delphi.

Un Saludo.
¿Y cómo haces esa asignación?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #84  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.015
Poder: 22
keys Va por buen camino
Hola para hacer la asignacion hago lo siguiente.

Tengo un objeto HttpPRIO que se le asigna el numero de serie del certificado.

Código Delphi [-]
  Objeto.HTTPWebNode.ClientCertificate.SerialNum := BuscarCertificado;


Código Delphi [-]
//Esta funcion devuelve el Numero de serie del certificado pasandole el nombre del certificado.
//Para ello tengo un combo donde cargo todos los certificados instalados.

function BUSCAR_CERTIFICADO(Nombre_Certificado: String): string;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  Result := '';
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then  begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
           if SameText(Nombre_certificado, sNombre) then
             begin
               REsult := GetCertSerialNumber(@CurContext^.pCertInfo^.SerialNumber);
               break;
            end;
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
end;

A la hora de hacer el envio se hace de la siguiente manera

Código Delphi [-]
  resultado := GetsiiSOAP(True, '', OBJETO HTTPTRIO).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

Última edición por Neftali [Germán.Estévez] fecha: 31-01-2017 a las 16:14:59. Razón: Añadir TAG's al código
Responder Con Cita
  #85  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.456
Poder: 20
newtron Va camino a la fama
Ok.

Lo suyo sería subir un ejemplo como los anteriores ya pasado a la nueva versión 0.5 y si es posible sin modificar el Soap.SOAPHTTPTrans.pas que, como bien dices, es mejor usar el estándar. ¿Algo así disponible?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #86  
Antiguo 31-01-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por Virman Ver Mensaje
Tengo problemas para el envío de facturas recibidas, que me dice: Valor o tipo incorrecto del campo: NIF.
Revisando los campos para el emisor de la factura (el que nos la envía a nosotros por ser factura recibida), veo que no hay campo NIF, teniendo que usar obligatoriamente el campo IdOtro.
Yo lo hago así:
IDFacturaRecibidaType idFact = new IDFacturaRecibidaType(); //IDFACTURA
IDFacturaRecibidaTypeIDEmisorFactura emisorFactura = new IDFacturaRecibidaTypeIDEmisorFactura(); //emisorFactura
IDOtroType idOtro = new IDOtroType();
idOtro.CodigoPais = ((CountryType2)(202)); //España
idOtro.IDType = ((PersonaFisicaJuridicaIDTypeType)(00)); //00 -> 02(NIF - IVA)
idOtro.ID = "XXXXXXXXX"; //Aqui pongo X por no poner un NIF real
emisorFactura.Item = idOtro;
idFact.IDEmisorFactura = emisorFactura;
¿No os parece que sería más sencillo crear un fichero XML que incluya todas las facturas a enviar? Siguiendo el esquema y ejemplos del documento "SII_Descripcion_ServicioWeb_v0.5.pdf".

Luego se envía el XML por webservice y se recoge la respuesta. Menos código a escribir. ¿Alguien lo ha probado?

Saludos,
Responder Con Cita
  #87  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 109
Poder: 8
seccion_31 Va por buen camino
CMB al final lo que envias es un XML igualito al que tu compones. Lo que te ahorra el interface es componer el XML a mano.

En posteos anteriores puse como enviar tu propio XML, y guardar el que genera el HTTPRIO1 es igual de fácil:

llamando asi:

Código:
result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
ejecutara los eventos:


Código:
procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string;
  SOAPResponse: TStream);
var
  ss:TFileStream;
begin
    ss:=TFileStream.Create('C:\recibido.xml', fmCreate);
    SOAPResponse.Position := 0;
    ss.CopyFrom(SOAPResponse, SOAPResponse.size);
    ss.Free;
    SOAPResponse.Position := 0;
end;

procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: string;
  SOAPRequest: TStream);
var
  ss:TFileStream;
begin
    SOAPRequest.Size:=0;
    ss:=TFileStream.Create('C:\enviado.xml', fmOpenRead);
    SOAPRequest.Position := 0;
    SOAPRequest.CopyFrom( ss, ss.Size);
    ss.Free;

    SOAPRequest.Position := 0;

end;

keys, a ver si me prestas un poco de atención, please... ¿has podido enviar mas de 15 facturas en un bloque?
Responder Con Cita
  #88  
Antiguo 31-01-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
CMB al final lo que envias es un XML igualito al que tu compones. Lo que te ahorra el interface es componer el XML a mano.
En posteos anteriores puse como enviar tu propio XML, y guardar el que genera el HTTPRIO1 es igual de fácil:
llamando asi:
Código:
result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
ejecutara los eventos:
Parece que llevas razón, seccion_31. Muchas gracias.

Saludos,
Responder Con Cita
  #89  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.015
Poder: 22
keys Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ok.

Lo suyo sería subir un ejemplo como los anteriores ya pasado a la nueva versión 0.5 y si es posible sin modificar el Soap.SOAPHTTPTrans.pas que, como bien dices, es mejor usar el estándar. ¿Algo así disponible?

Saludos
Subo un ejemplo para utilzar las units de delphi en vez de las que tiene el ejemplo anterior. En cuanto a la versión 0.5 parece que no funciona de momento.



Para CMB no te tengo olvidado estoy en ello. De momento me estaba pegando con una sola factura. En cuanto lo pruebe te digo.

Última edición por keys fecha: 05-05-2017 a las 11:11:55.
Responder Con Cita
  #90  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.015
Poder: 22
keys Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
CMB a


keys, a ver si me prestas un poco de atención, please... ¿has podido enviar mas de 15 facturas en un bloque?
He generado un bloque de más de 15 facturas y me ha pasado lo mismo que a ti, me ha dado errores de certificado. Ahora intento enviar una sola y me da un error "NO HA PODIDO GENERARSE LA FIRMA". No se si me han bloqueado el certificado o es que están haciendo cambios y por eso no funciona. He estado enviando facturas toda la mañana sin ningún problema.

Alguien puede hacer la prueba de enviar ahora una factura y ver si le funciona.

Gracias
Responder Con Cita
  #91  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.456
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por keys Ver Mensaje
He generado un bloque de más de 15 facturas y me ha pasado lo mismo que a ti, me ha dado errores de certificado. Ahora intento enviar una sola y me da un error "NO HA PODIDO GENERARSE LA FIRMA". No se si me han bloqueado el certificado o es que están haciendo cambios y por eso no funciona. He estado enviando facturas toda la mañana sin ningún problema.

Alguien puede hacer la prueba de enviar ahora una factura y ver si le funciona.

Gracias
Yo acabo de enviar una sin problemas.
__________________
Be water my friend.
Responder Con Cita
  #92  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 109
Poder: 8
seccion_31 Va por buen camino
Acabo de enviar una sin problemas.

Saludos !
Responder Con Cita
  #93  
Antiguo 31-01-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.015
Poder: 22
keys Va por buen camino
Hola a todos. Ya vuelvo a poder enviar, yo creo que la página de la aeat se ha quedado un rato frita.

Si intento enviar 13 facturas o más me sale el siguiente error.

"Se requiere un certificado para completar la autenticación de cliente - URL:https://www1.agenciatributaria.gob.e...SiiFactV1PSOAP - SOAPAction"

Mandaré la pregunta a hacienda para ver si algún día responde.
Responder Con Cita
  #94  
Antiguo 31-01-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 109
Poder: 8
seccion_31 Va por buen camino
Ese es el error que me sale a mi.

Envio ahora mismo la pregunta también.
Responder Con Cita
  #95  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.456
Poder: 20
newtron Va camino a la fama
Esperaremos a ver qué pasa con la nueva versión, ahora yo tengo dos preguntas:

1-¿Por qué usar el componente HTTPRIO en vez de crearlo de forma dinámica? ¿alguna ventaja?
2-¿Usando el componente HTTPRIO en la nueva versión habrá que crear tantos como ficheros WSDL?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #96  
Antiguo 31-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Dado que es un tema interesante, de actualidad y que cada vez me da la impresión de que se lo van a encontrar más personas del grupo lo he "Chincheteado".
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #97  
Antiguo 31-01-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.456
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Dado que es un tema interesante, de actualidad y que cada vez me da la impresión de que se lo van a encontrar más personas del grupo lo he "Chincheteado".
Me parece muy correcto.
__________________
Be water my friend.
Responder Con Cita
  #98  
Antiguo 01-02-2017
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 109
Poder: 8
seccion_31 Va por buen camino
Me han contestado de la aeat, diciéndome que "se esta tramitando..."

Pero el encabezado de respuesta era sospechosamente este:

"Re: [Posible SPAM] Error al enviar 13 o mas facturas"

uuummm....

lo han dividido para dividir por usos... igual piensan que es mejor por si alguien no usa recibidas, y si emitidas....

Si usas la llamada:

Código:
result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
necesitas indicar en el httipro el WSDLLOCATION

Si usas:

Código:
result := GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
Te sirve sin ningún httipro, es mas: ! lo puedes quitar del form !

Pero cuidado, con el nuevo interface 0.5 el puerto que tienen puesto es el real, fijaros en la función GetsiiSOAP

Saludos !
Responder Con Cita
  #99  
Antiguo 01-02-2017
RafaSerMed RafaSerMed is offline
Miembro
NULL
 
Registrado: ene 2017
Posts: 24
Poder: 0
RafaSerMed Va por buen camino
content-type

Hola a todos.

Lo primero agradecer enormemente a todos los que están colaborando con este hilo (y obviamente con el resto del foro), ya que poco a poco se clarifican todos los problemas.

Yo por mi parte había desarrollado el sistema de envío por mi cuenta, pero al encontrarme mil y un problemas he llegado hasta aquí.

En mi caso el problema que tengo es el siguiente error al lanzar la petición SOAP: "Received content of invalid Content-Type setting: text/html - SOAP expects text/XML". Me ocurre tanto con un desarrollo mio, como con el ultimo ejemplo completo que se ha posteado en este hile

Buscando información, creo haber llegado a la conclusión que es un error en el formato del XML enviado por el HTTPRIO, pero no lo tengo claro. En un principio estaba intentando lanzar "ConsultaLRFacturasEmitidas" que me parecía mas sencilla para probar si la comunicación era correcta y si estaba añadiendo bien el certificado a la petición. Pero tambien como digo me ocurre con "SuministroLRFacturasEmitidas". Y tanto con la version 0.4 como con la nueva 0.5

Alguna idea???
Responder Con Cita
  #100  
Antiguo 01-02-2017
RafaSerMed RafaSerMed is offline
Miembro
NULL
 
Registrado: ene 2017
Posts: 24
Poder: 0
RafaSerMed Va por buen camino
Lo siento, soy idiota. Creo que es un problema con el certificado ademas alguien ya lo ha posteado anteriormente....

Cita:
Empezado por RafaSerMed Ver Mensaje
Hola a todos.

Lo primero agradecer enormemente a todos los que están colaborando con este hilo (y obviamente con el resto del foro), ya que poco a poco se clarifican todos los problemas.

Yo por mi parte había desarrollado el sistema de envío por mi cuenta, pero al encontrarme mil y un problemas he llegado hasta aquí.

En mi caso el problema que tengo es el siguiente error al lanzar la petición SOAP: "Received content of invalid Content-Type setting: text/html - SOAP expects text/XML". Me ocurre tanto con un desarrollo mio, como con el ultimo ejemplo completo que se ha posteado en este hile

Buscando información, creo haber llegado a la conclusión que es un error en el formato del XML enviado por el HTTPRIO, pero no lo tengo claro. En un principio estaba intentando lanzar "ConsultaLRFacturasEmitidas" que me parecía mas sencilla para probar si la comunicación era correcta y si estaba añadiendo bien el certificado a la petición. Pero tambien como digo me ocurre con "SuministroLRFacturasEmitidas". Y tanto con la version 0.4 como con la nueva 0.5

Alguna idea???
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4138 Hace 3 Días 18:12:45
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 21:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 12:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 21:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 16:49:20


La franja horaria es GMT +2. Ahora son las 11:23:59.


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