Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2017
RafaSerMed RafaSerMed is offline
Miembro
NULL
 
Registrado: ene 2017
Posts: 24
Poder: 0
RafaSerMed Va por buen camino
Cita:
Empezado por Homine Ver Mensaje
Son libros de registro distintos. El libro de Registro de determinadas operaciones intracomunitarias:

En este libro se registran exclusivamente dos tipos de operaciones, las operaciones a
las que hace referencia el artículo 66 del RIVA, es decir, sólo las siguientes:

1. El envío o recepción de bienes para la realización de los informes periciales o
trabajos mencionados en el artículo 70, apartado uno, número 7º, de la Ley del
Impuesto (Ley 37/1992).

2. Las transferencias de bienes y las adquisiciones intracomunitarias de bienes
comprendidas en los artículos 9, apartado 3º, y 16, apartado 2º, de la Ley del
Impuesto (Ley 37/1992).

Se consignará la clave “D” si el declarado es el destinatario de los bienes objeto de la
operación, y “R” si el declarado es el remitente de los bienes objeto de la operación.

En cuanto a las adquisiciones intracomunitarias de bienes habituales, así como
las entregas intracomunitarias de bienes habituales, se deben registrar en el
Libro registro de Facturas recibidas y Expedidas respectivamente.
Esa pregunta la formule yo hace unos dias, ya que tampoco nos quedaba claro. Como bien dice Homine, son unas determinadas operaciones y "creemos" que SOLO van en el libro de Otras operaciones Intracomunitarias y no se debe tambien de enviar en cualquiera de los otros libros.
Responder Con Cita
  #2  
Antiguo 23-06-2017
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
jodaws Va por buen camino
Buenos días, nosotros tambien hemos subido facturas a producción con nuestro NIF y no estamos en el SII...

Sabéis si hay portal para hacer consultas y modificaciones en Producción??? Claro ahora si voy al portal de pruebas, evidentemente no me aparece las que he subido en producción
Responder Con Cita
  #3  
Antiguo 23-06-2017
Homine Homine is offline
Miembro
NULL
 
Registrado: jun 2017
Posts: 26
Poder: 0
Homine Va por buen camino
Cita:
Empezado por jodaws Ver Mensaje
Buenos días, nosotros tambien hemos subido facturas a producción con nuestro NIF y no estamos en el SII...

Sabéis si hay portal para hacer consultas y modificaciones en Producción??? Claro ahora si voy al portal de pruebas, evidentemente no me aparece las que he subido en producción
Cambia la URL ...www7.aeat.es... por ...www1.aeat.es...
Responder Con Cita
  #4  
Antiguo 23-06-2017
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por Homine Ver Mensaje
Cambia la URL ...www7.aeat.es... por ...www1.aeat.es...
Gracias!!!!!!!
Responder Con Cita
  #5  
Antiguo 11-07-2017
richihu richihu is offline
Registrado
NULL
 
Registrado: jun 2014
Posts: 5
Poder: 0
richihu Va por buen camino
URL's producción

Cita:
Empezado por Homine Ver Mensaje
Cambia la URL ...www7.aeat.es... por ...www1.aeat.es...
Hola a todos, ¿podría por favor alguien indicarme como invocar el WS para producción? Comento lo que tengo escrito, para invocar al WS uso la siguiente instrucción,


try
FE_Output := WSFactEmit.GetsiiSOAP(False, '', HTTPRIO_FEmitidas).SuministroLRFacturasEmitidas(FE_Input); // GetsiiSOAP.SuministroLRFacturasEmitidas(FE_Input);
except
on E: exception do
begin
MessageDlg(e.Message, mtError, [mbOk], 0);
Exit;
end;
end;


Es decir paso el parámetro UseWSDL a False y Addr a '', luego en el código del GetSOAP tengo lo siguiente,

si estoy en DEBUG la url es www7.... si no, me coge www1.agencia....


La cuestión es que había realizado pruebas con el parámetro UseWSDL = True por lo que las pruebas se han realizado con la URL defWSDL = ...agenciatributaria.es/static_files/AEAT/Contenidos_Comunes/La_Agencia_Tributaria/Modelos_y_formularios/Suministro_inmediato_informacion/FicherosSuministros/V_07/SuministroFactEmitidas....wsdl y ahora cuando vuelvo a subir las facturas me dice que están duplicadas.

Mi pregunta es ¿cómo invocarlo correctamente para entorno de producción? y si la URL defWSDL = ...Modelos_y_formularios/Suministro_inmediato_informacion/FicherosSuministros/V_07/SuministroFactEmitidas... es entorno de producción o de pruebas.

Lo curioso es que tampoco me aparecen las facturas en la consulta de Facturas Emitidas...

Gracias,
Responder Con Cita
  #6  
Antiguo 23-06-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Poder: 0
dimony Va por buen camino
Certificados en 64Bits

Hola buenos días, ya se que este tema esta muy trillado, pero me ha saltado ahora y estoy algo desesperado.
Resulta que el envío de facturas me funcionaba a las mil maravillas, enviaba mas de 13 o 14 con mi librería capicom.dll.
El día de ayer me llama un cliente que tiene un s.o. de 64 bits y empieza a petar el envío con mas de 14 facturas.
Con las mismas me puse a buscar en este maravilloso foro y vi varias posibilidades de las cuales no me ha funcionado ninguna.

1ª.- Descargue la instalación de capicom a 64 bits y la registre. --> Error no envía mas de 14.
2ª.- Supuse que tendría que compilar mi app para Windows 64 bits, por lo que lo incluí windows 64 bit en Target Plattaforms

Código Delphi [-]
procedure TData.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
var
     Store : IStore;
     Certs : ICertificates;
     Cert : ICertificate2;
     CertContext : ICertContext;
     PCertContext : PCCERT_CONTEXT;
     V : OleVariant;
 const
     INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
begin
  V:= trim(main.lista_certificados.Items.Text);
  Store := CoStore.Create;
  Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
  Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre }
  if Certs.Count > 0 then
    begin
    Cert:=IInterface(Certs.Item[1]) as ICertificate2;
    CertContext:=Cert as ICertContext;
    CertContext.Get_CertContext(integer(PCertContext));
    if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then
      begin
      ShowMessage( 'Internet SSL certificate. Something went wrong' );
      end;
    end;
end;

Código Delphi [-]
[dcc64 Error] Datos.pas(188): E2197 Constant object cannot be passed as var parameter

Este error es por que PCertContext se debería declarar como constante, pero exactamente no se que valor se le debería dar.

Y ahí me he quedado.
Me podría alguien echar un cable, o darme unas nociones por si a lidiado con este Montoro ... digo Toro.
Gracias.
Responder Con Cita
  #7  
Antiguo 23-06-2017
anabelda anabelda is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
anabelda Va por buen camino
Envío masivo

Cita:
Empezado por dimony Ver Mensaje
Hola buenos días, ya se que este tema esta muy trillado, pero me ha saltado ahora y estoy algo desesperado.
Resulta que el envío de facturas me funcionaba a las mil maravillas, enviaba mas de 13 o 14 con mi librería capicom.dll.
El día de ayer me llama un cliente que tiene un s.o. de 64 bits y empieza a petar el envío con mas de 14 facturas.
Con las mismas me puse a buscar en este maravilloso foro y vi varias posibilidades de las cuales no me ha funcionado ninguna.

1ª.- Descargue la instalación de capicom a 64 bits y la registre. --> Error no envía mas de 14.
2ª.- Supuse que tendría que compilar mi app para Windows 64 bits, por lo que lo incluí windows 64 bit en Target Plattaforms

Código Delphi [-]
procedure TData.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
var
     Store : IStore;
     Certs : ICertificates;
     Cert : ICertificate2;
     CertContext : ICertContext;
     PCertContext : PCCERT_CONTEXT;
     V : OleVariant;
 const
     INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
begin
  V:= trim(main.lista_certificados.Items.Text);
  Store := CoStore.Create;
  Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
  Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre }
  if Certs.Count > 0 then
    begin
    Cert:=IInterface(Certs.Item[1]) as ICertificate2;
    CertContext:=Cert as ICertContext;
    CertContext.Get_CertContext(integer(PCertContext));
    if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then
      begin
      ShowMessage( 'Internet SSL certificate. Something went wrong' );
      end;
    end;
end;

Código Delphi [-]
[dcc64 Error] Datos.pas(188): E2197 Constant object cannot be passed as var parameter

Este error es por que PCertContext se debería declarar como constante, pero exactamente no se que valor se le debería dar.

Y ahí me he quedado.
Me podría alguien echar un cable, o darme unas nociones por si a lidiado con este Montoro ... digo Toro.
Gracias.
Hola,
yo también estoy peleando con este tema, el tope que consigo enviar son 25 facturas. También estoy utilizando CAPICOM.
Responder Con Cita
  #8  
Antiguo 23-06-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Poder: 0
dimony Va por buen camino
Cita:
Empezado por anabelda Ver Mensaje
Hola,
yo también estoy peleando con este tema, el tope que consigo enviar son 25 facturas. También estoy utilizando CAPICOM.
Yo voy a optar por enviar lotes de 13 facturas en 13.
Bueno 13 no que da mal fario,
Responder Con Cita
  #9  
Antiguo 23-06-2017
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 281
Poder: 8
manelb Va por buen camino
Cita:
Empezado por dimony Ver Mensaje
Hola buenos días, ya se que este tema esta muy trillado, pero me ha saltado ahora y estoy algo desesperado.
Resulta que el envío de facturas me funcionaba a las mil maravillas, enviaba mas de 13 o 14 con mi librería capicom.dll.
El día de ayer me llama un cliente que tiene un s.o. de 64 bits y empieza a petar el envío con mas de 14 facturas.
Con las mismas me puse a buscar en este maravilloso foro y vi varias posibilidades de las cuales no me ha funcionado ninguna.
Hay un comprimido de un compañero en el hilo donde explica detalladamente como instalar y registrar CAPICOM.

http://www.clubdelphi.com/foros/misc...hments&t=91252

Yo lo estoy utilizando en 32 y 64 bits y no tengo ningún problema.

No recuerdo quien lo envió (disculpa compañero........)pero le estaré eternamente agradecido.
Responder Con Cita
  #10  
Antiguo 23-06-2017
parrux parrux is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 2
Poder: 0
parrux Va por buen camino
notitificar factura española

Buenos días y gracias de antemano,
tengo una duda (porque algo estoy haciendo mal seguro) me dan error todos los CIF de las empresas, a ver si podéis echarme un cable:

Código:
//Contraparte
            FacturasEmitidas.PersonaFisicaJuridicaType contraparte = new FacturasEmitidas.PersonaFisicaJuridicaType();
            contraparte.NombreRazon = Factura.Contrap_RazonSocial;                                                                                  //Razón Social
            if (Factura.Contrap_NIFRepresentante != "")
                contraparte.NIFRepresentante = Factura.Contrap_NIFRepresentante;                                                                    //NIF Representante
          
            FacturasEmitidas.IDOtroType IdOtroContrap = new FacturasEmitidas.IDOtroType();                                                          //IdOtro
            if (Factura.Contrap_IdPais != null)
            {
                IdOtroContrap.CodigoPais = p.FacturasEmiConvertirPaises(Factura.Contrap_IdPais);                                                    //País
                IdOtroContrap.CodigoPaisSpecified = true;
            }
            IdOtroContrap.IDType = dp.FacturasEmiConvertirDocPaises(Factura.Contrap_IdType);                                                        //Doc País
            IdOtroContrap.ID = Factura.Contrap_Id;                                                                                                  //Id

            contraparte.Item = IdOtroContrap;
            
            f.FacturaExpedida.Contraparte = new FacturasEmitidas.PersonaFisicaJuridicaType();
            f.FacturaExpedida.Contraparte = contraparte;

            f.FacturaExpedida.TipoDesglose = new FacturasEmitidas.FacturaExpedidaTypeTipoDesglose();
No consigo o no se como especificar el NIF de una empresa española sin tener que recurrir al objeto IdOtro
Responder Con Cita
  #11  
Antiguo 23-06-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Poder: 0
dimony Va por buen camino
Cita:
Empezado por parrux Ver Mensaje
Buenos días y gracias de antemano,
tengo una duda (porque algo estoy haciendo mal seguro) me dan error todos los CIF de las empresas, a ver si podéis echarme un cable:

Código:
//Contraparte
            FacturasEmitidas.PersonaFisicaJuridicaType contraparte = new FacturasEmitidas.PersonaFisicaJuridicaType();
            contraparte.NombreRazon = Factura.Contrap_RazonSocial;                                                                                  //Razón Social
            if (Factura.Contrap_NIFRepresentante != "")
                contraparte.NIFRepresentante = Factura.Contrap_NIFRepresentante;                                                                    //NIF Representante
          
            FacturasEmitidas.IDOtroType IdOtroContrap = new FacturasEmitidas.IDOtroType();                                                          //IdOtro
            if (Factura.Contrap_IdPais != null)
            {
                IdOtroContrap.CodigoPais = p.FacturasEmiConvertirPaises(Factura.Contrap_IdPais);                                                    //País
                IdOtroContrap.CodigoPaisSpecified = true;
            }
            IdOtroContrap.IDType = dp.FacturasEmiConvertirDocPaises(Factura.Contrap_IdType);                                                        //Doc País
            IdOtroContrap.ID = Factura.Contrap_Id;                                                                                                  //Id

            contraparte.Item = IdOtroContrap;
            
            f.FacturaExpedida.Contraparte = new FacturasEmitidas.PersonaFisicaJuridicaType();
            f.FacturaExpedida.Contraparte = contraparte;

            f.FacturaExpedida.TipoDesglose = new FacturasEmitidas.FacturaExpedidaTypeTipoDesglose();
No consigo o no se como especificar el NIF de una empresa española sin tener que recurrir al objeto IdOtro
Id_Otro se debe de utilizar solo en caso de que no sea un CIF español, o sea que es excluyente
Responder Con Cita
  #12  
Antiguo 23-06-2017
parrux parrux is offline
Registrado
NULL
 
Registrado: jun 2017
Posts: 2
Poder: 0
parrux Va por buen camino
Cita:
Empezado por dimony Ver Mensaje
Id_Otro se debe de utilizar solo en caso de que no sea un CIF español, o sea que es excluyente
Gracias por tu respuesta!
Y si es Español directamente paso el CIF, me explico, las unicas propiedades que me da FacturaExpedida.Contraparte son:

.NombreRazon
.NIFRepresentante
.Item

si no meto un objeto IdOtro y meto directamente un String "V12346578" por defecto pone la eqtiqueta NIF?? o como va???

Muchas gracias de nuevo!
Responder Con Cita
  #13  
Antiguo 23-06-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Poder: 0
dimony Va por buen camino
Cita:
Empezado por parrux Ver Mensaje
Gracias por tu respuesta!
Y si es Español directamente paso el CIF, me explico, las unicas propiedades que me da FacturaExpedida.Contraparte son:

.NombreRazon
.NIFRepresentante
.Item

si no meto un objeto IdOtro y meto directamente un String "V12346578" por defecto pone la eqtiqueta NIF?? o como va???

Muchas gracias de nuevo!
Aquí va parte de mi código, espero que te ayude.
Código Delphi [-]
if data.LibrosRegistros.FieldByName('clave_tipo_factura').AsString <> 'F2' then
      begin
      v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte := SuministroFactEmitidas.PersonaFisicaJuridicaType.Create;
      v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.NombreRazon := data.LibrosRegistros.FieldByName('des_cuenta').AsString;
      v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.NIFRepresentante := '';

      if data.LibrosRegistros.FieldByName('codigo_pais_contraparte').AsString = 'ES' then
        v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.NIF := data.LibrosRegistros.FieldByName('cif').AsString
      else
        begin
        for v_dummy := 0 to Length(main.v_paises) do
          begin
          if main.v_paises[v_dummy] = data.LibrosRegistros.FieldByName('codigo_pais_contraparte').AsString then
            break;
          end;

        v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro := SuministroFactEmitidas.IDOtroType.Create;
        v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.CodigoPais := SuministroFactEmitidas.CountryType2(v_dummy);

        if data.LibrosRegistros.FieldByName('clave_identificacion_fiscal').AsString = '02' then
          v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.IDType := SuministroFactEmitidas.PersonaFisicaJuridicaIDTypeType(0)
        else if data.LibrosRegistros.FieldByName('clave_identificacion_fiscal').AsString = '03' then
          v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.IDType := SuministroFactEmitidas.PersonaFisicaJuridicaIDTypeType(1)
        else if data.LibrosRegistros.FieldByName('clave_identificacion_fiscal').AsString = '04' then
          v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.IDType := SuministroFactEmitidas.PersonaFisicaJuridicaIDTypeType(2)
        else if data.LibrosRegistros.FieldByName('clave_identificacion_fiscal').AsString = '05' then
          v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.IDType := SuministroFactEmitidas.PersonaFisicaJuridicaIDTypeType(3)
        else if data.LibrosRegistros.FieldByName('clave_identificacion_fiscal').AsString = '06' then
          v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.IDType := SuministroFactEmitidas.PersonaFisicaJuridicaIDTypeType(4);

        v_RegistroLRFacturasEmitidas[v_registros_facturas - 1].FacturaExpedida.Contraparte.IDotro.id := data.LibrosRegistros.FieldByName('numero_identificacion_pais').AsString;
        end;
      end;
Responder Con Cita
  #14  
Antiguo 23-06-2017
anabelda anabelda is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
anabelda Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
Hay un comprimido de un compañero en el hilo donde explica detalladamente como instalar y registrar CAPICOM.


Yo lo estoy utilizando en 32 y 64 bits y no tengo ningún problema.

No recuerdo quien lo envió (disculpa compañero........)pero le estaré eternamente agradecido.
Si, seguí esos pasos. Pero creo que el problema lo tengo a la hora de obtener el certificado, utilizo SecureBlackBox. Mi duda es en la siguiente línea
Certs := Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False );

¿que es el parametro V? ¿como lo obtengo con SecureBlackbox, si es posible?
Responder Con Cita
  #15  
Antiguo 23-06-2017
anabelda anabelda is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
anabelda Va por buen camino
Resuelto

Cita:
Empezado por anabelda Ver Mensaje
Si, seguí esos pasos. Pero creo que el problema lo tengo a la hora de obtener el certificado, utilizo SecureBlackBox. Mi duda es en la siguiente línea
Certs := Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False );

¿que es el parametro V? ¿como lo obtengo con SecureBlackbox, si es posible?
Por fin, lo he conseguido. Como suponía el problema lo tenia al asociar el certificado, en un principio asignaba el número de serie, pero no era correcto. Con la siguiente línea ya me funciona:

v:=certif.SubjectName.CommonName;
Responder Con Cita
  #16  
Antiguo 27-06-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Poder: 0
dimony Va por buen camino
Cita:
Empezado por dimony Ver Mensaje
Hola buenos días, ya se que este tema esta muy trillado, pero me ha saltado ahora y estoy algo desesperado.
Resulta que el envío de facturas me funcionaba a las mil maravillas, enviaba mas de 13 o 14 con mi librería capicom.dll.
El día de ayer me llama un cliente que tiene un s.o. de 64 bits y empieza a petar el envío con mas de 14 facturas.
Con las mismas me puse a buscar en este maravilloso foro y vi varias posibilidades de las cuales no me ha funcionado ninguna.

1ª.- Descargue la instalación de capicom a 64 bits y la registre. --> Error no envía mas de 14.
2ª.- Supuse que tendría que compilar mi app para Windows 64 bits, por lo que lo incluí windows 64 bit en Target Plattaforms

Código Delphi [-]procedure TData.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); var Store : IStore; Certs : ICertificates; Cert : ICertificate2; CertContext : ICertContext; PCertContext : PCCERT_CONTEXT; V : OleVariant; const INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84; begin V:= trim(main.lista_certificados.Items.Text); Store := CoStore.Create; Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre } if Certs.Count > 0 then begin Cert:=IInterface(Certs.Item[1]) as ICertificate2; CertContext:=Cert as ICertContext; CertContext.Get_CertContext(integer(PCertContext)); if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then begin ShowMessage( 'Internet SSL certificate. Something went wrong' ); end; end; end;


Código Delphi [-][dcc64 Error] Datos.pas(188): E2197 Constant object cannot be passed as var parameter


Este error es por que PCertContext se debería declarar como constante, pero exactamente no se que valor se le debería dar.

Y ahí me he quedado.
Me podría alguien echar un cable, o darme unas nociones por si a lidiado con este Montoro ... digo Toro.
Gracias.
¿Hay alguna alternativa a CAPICOM?. He visto en la web de Microsoft que a partir de Windows7 fue excluido de WINDOWS SDK.
Responder Con Cita
  #17  
Antiguo 27-06-2017
figo21 figo21 is offline
Miembro
 
Registrado: dic 2012
Posts: 104
Poder: 12
figo21 Va por buen camino
Cita:
Empezado por dimony Ver Mensaje
¿Hay alguna alternativa a CAPICOM?. He visto en la web de Microsoft que a partir de Windows7 fue excluido de WINDOWS SDK.
No trabajo con Delphi ni sé cual es el motivo de usar CAPICOM, pero aquí tienes algo de código en c++ con llamadas a WinInet que se adecúa más o menos al código que muestras:

HCERTSTORE hStore;
PCCERT_CONTEXT pFindContext;

hStore = CertOpenSystemStoreA(0, TEXT("MY"));

cCert = "NOMBRE DEL CERTIFICADO"
pFindContext =CertFindCertificateInStore(hStore, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR, cCert, NULL);

Ya apartir de ahí:
InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,pFindContext,Sizeof(CERT_CONTEXT));

Seleccionar el certificado con el diálogo de Windows se puede hacer con CryptUIDlgSelectCertificateFromStore.


Si te sirve o como se puede trasladar esto a Delphi no lo sé, pero si quieres hacer pruebas, pues ahí tienes algo.

Un saludo.
Responder Con Cita
Respuesta



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 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 09:10:55.


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