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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.235
Poder: 24
keys Va por buen camino
Si van a habilitar entorno de pruebas. Se supone que en unos días.
Responder Con Cita
  #2  
Antiguo 22-10-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 20
juramisa Va por buen camino
Buenos días hice la consulta en relación al entorno de pruebas antes de que me respondiera keys, y esta es la respuesta:

Cita:
Kaixo,

A partir de 01/01/2022, las empresas y autónomos sujetos a la normativa de Bizkaia estarán obligadas a la llevanza del libro registro de operaciones económicas (en adelante, LROE) a través de la sede electrónica de la Diputación Foral de Bizkaia, mediante el suministro electrónico de las anotaciones que lo componen.

El suministro electrónico de las anotaciones que componen el LROE se realizará mediante servicios web o, en su caso, a través de los correspondientes formularios electrónicos, todo ello conforme a las especificaciones técnicas y funcionales que se aprueben por Orden Foral del diputado foral de Hacienda y Finanzas.

En el mes de noviembre de 2020 se habilitará el entorno de pruebas de los servicios web del LROE.

Para realizar estas pruebas, no es necesario que la empresa de software se inscriba en el registro de software garante TicketBAI.

Los datos que se reciban dentro de este entorno tendrán exclusivamente el tratamiento de datos de prueba.

El detalle de las condiciones para realizar las pruebas se publicará próximamente en el apartado Documentación técnica de la página web www.batuz.eus.

Les avisaremos de dicha publicación mediante aviso en el apartado Novedades de la página web www.batuz.eus y correo a través de este buzón.
Responder Con Cita
  #3  
Antiguo 04-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 20
juramisa Va por buen camino
Entorno de pruebas

Buenas tardes
Ya se ha puesto en marcha el entorno de pruebas LROE en Bizkaia, estoy probando, y en:

Código Delphi [-]
unit System.Net.HttpClient.Win;

procedure TWinHTTPClient.DoGetClientCertificates(const ARequest: THTTPRequest;
  const ACertificateList: TList);

la aplicación casca, da el terrorífico 'Access violation .....'. Uso uso Delphi 10 Seattle y los componentes TNetHTTPClient y TNetHTTPRequest.
La selección del certificado la realizo en el evento OnNeedClientCertificate,

Código Delphi [-]
procedure Tfrm140CTB.NetHTTPClient1NeedClientCertificate(const Sender: TObject; const ARequest: TURLRequest; const ACertificateList: TCertificateList; var AnIndex: Integer);
var
  i: Integer;
begin
  for i := 0 to ACertificateList.Count - 1 do
  begin

    if  (SameText(ACertificateList[i].Subject, mi_certificado.Caption)) then
    begin
      AnIndex := i;
      break;
    end;
  end;
end;

He puesto una traza al comienzo de este procedimiento, y ni siquiera llega
Si alguien utiliza este sistema, y le funciona, agradecido me eche una mano.
Responder Con Cita
  #4  
Antiguo 05-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 193
Poder: 14
elcharlie Va por buen camino
Cita:
Empezado por juramisa Ver Mensaje
Buenas tardes
Ya se ha puesto en marcha el entorno de pruebas LROE en Bizkaia, estoy probando, y en:

Código Delphi [-]
unit System.Net.HttpClient.Win;

procedure TWinHTTPClient.DoGetClientCertificates(const ARequest: THTTPRequest;
  const ACertificateList: TList);

la aplicación casca, da el terrorífico 'Access violation .....'. Uso uso Delphi 10 Seattle y los componentes TNetHTTPClient y TNetHTTPRequest.
La selección del certificado la realizo en el evento OnNeedClientCertificate,

Código Delphi [-]
procedure Tfrm140CTB.NetHTTPClient1NeedClientCertificate(const Sender: TObject; const ARequest: TURLRequest; const ACertificateList: TCertificateList; var AnIndex: Integer);
var
  i: Integer;
begin
  for i := 0 to ACertificateList.Count - 1 do
  begin

    if  (SameText(ACertificateList[i].Subject, mi_certificado.Caption)) then
    begin
      AnIndex := i;
      break;
    end;
  end;
end;

He puesto una traza al comienzo de este procedimiento, y ni siquiera llega
Si alguien utiliza este sistema, y le funciona, agradecido me eche una mano.

Buenos dias!
yo lo hago mas o menos así, y de momento, ningún problema. No sé cual será tu problema, eso sí, lo estoy haciendo con Delphi 10.3 Rio. Pero yo creo que el problema no está en ese evento, tiene que ser en otra parte

Última edición por elcharlie fecha: 05-11-2020 a las 08:16:45.
Responder Con Cita
  #5  
Antiguo 05-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 20
juramisa Va por buen camino
Gracias elcharlie,
El error se da en el siguiente procedimiento de la unit System.Net.HttpClient.Win, marco la instrucción en rojo;

Código Delphi [-]
procedure TWinHTTPClient.DoGetClientCertificates(const ARequest: THTTPRequest;
  const ACertificateList: TList);
var
  LRequest: TWinHTTPRequest;
  LStore: HCERTSTORE;
  LIssuerList: PSecPkgContext_IssuerListInfoEx;
  LClientCert: PCCERT_CONTEXT;
  LSearchCriteria: CERT_CHAIN_FIND_BY_ISSUER_PARA;
  LIssuerListSize: DWORD;
  LPrevChainContext, LClientCertChain: PCCERT_CHAIN_CONTEXT;
  LCertificate: TCertificate;
begin
  inherited;

  if FWinCertList.Count = 0 then
  begin
    LRequest := TWinHTTPRequest(ARequest);

    LIssuerList := nil;
    LIssuerListSize := SizeOf(LIssuerList);

    if WinHttpQueryOption(LRequest.FWRequest, WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST, LIssuerList, LIssuerListSize) = TRUE then
    begin
      FillChar(LSearchCriteria, SizeOf(LSearchCriteria), 0);
      LSearchCriteria.cbSize := SizeOf(LSearchCriteria);
      LSearchCriteria.cIssuer := LIssuerList.cIssuers;
      LSearchCriteria.rgIssuer := LIssuerList.aIssuers;

      LStore := TCertificateStore.Store;
      if LStore <> nil then
      begin
        LPrevChainContext := nil;
        while True do
        begin
          LClientCertChain := CertFindChainInStore(LStore, X509_ASN_ENCODING,
            CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG or CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG,
            CERT_CHAIN_FIND_BY_ISSUER, @LSearchCriteria, LPrevChainContext);

          if LClientCertChain <> nil then
          begin
            LPrevChainContext := LClientCertChain;
            LClientCert := LClientCertChain.rgpChain^.rgpElement^.pCertContext;
            CertDuplicateCertificateContext(LClientCert); // Need to be released (CertFreeCertificateContext)
            CryptCertToTCertificate(LClientCert, LCertificate);
            FCertificateList.Add(LCertificate);
            FWinCertList.Add(LClientCert);
          end
          else
            Break;
        end;
      end;
      GlobalFree(HGLOBAL(LIssuerList));
    end;
  end;
  ACertificateList.Clear;
  ACertificateList.AddRange(FCertificateList);
end;

¿Serías tan amable de mandarme ese procedimiento en la versión Rio?. Viéndolo, parece que es un problema al cargar la lista de los certificados presentes en el ordenador.
¿Tal vez hay una orden previa para la carga de los certificados y que yo no la esté realizando?

Gracias.
Responder Con Cita
  #6  
Antiguo 05-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.235
Poder: 24
keys Va por buen camino
Hola a todos.

En el componente TNetHttpClient tienes un evento OnRequestError, intenta capturar el error que te da.

Un Saludo
Responder Con Cita
  #7  
Antiguo 05-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 20
juramisa Va por buen camino
Hola
keys, da lo siguiente, yo la verdad con esos errores nunca he podido saber nada, y da como he dicho al cargar la lista de certificados. Vosotros cargáis dicha lista antes, o le dices como cargarla antes de ejecutar
Código Delphi [-]
NetHTTPClient1.Post(la_url, ss).ContentAsString(tencoding.UTF8);
Código Delphi [-]
---------------------------
BATUZ
---------------------------
Access violation at address 00B19045 in module 'BATUZ.exe'. Read of address 00000004
---------------------------
OK   
---------------------------

Gracias
Responder Con Cita
  #8  
Antiguo 05-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 193
Poder: 14
elcharlie Va por buen camino
Cita:
Empezado por juramisa Ver Mensaje
¿Serías tan amable de mandarme ese procedimiento en la versión Rio?. Viéndolo, parece que es un problema al cargar la lista de los certificados presentes en el ordenador.
¿Tal vez hay una orden previa para la carga de los certificados y que yo no la esté realizando?
Gracias.
Te lo envío, pero sigo creyendo que éste no es el problema, el problema lo tienes en otra parte.

Código Delphi [-]
procedure TWinHTTPClient.DoGetClientCertificates(const ARequest: THTTPRequest;
  const ACertificateList: TList);
var
  LRequest: TWinHTTPRequest;
  LStore: HCERTSTORE;
  LIssuerList: PSecPkgContext_IssuerListInfoEx;
  LClientCert: PCCERT_CONTEXT;
  LSearchCriteria: CERT_CHAIN_FIND_BY_ISSUER_PARA;
  LIssuerListSize: DWORD;
  LPrevChainContext, LClientCertChain: PCCERT_CHAIN_CONTEXT;

  procedure AddToCertificateList(const AClientCert: PCCERT_CONTEXT);
  var
    LCertificate: TCertificate;
  begin
    CertDuplicateCertificateContext(AClientCert); // Need to be released (CertFreeCertificateContext)
    CryptCertToTCertificate(AClientCert, LCertificate);
    FCertificateList.Add(LCertificate);
    FWinCertList.Add(AClientCert);
  end;
begin
  inherited;

  if FWinCertList.Count = 0 then
  begin
    LRequest := TWinHTTPRequest(ARequest);

    LIssuerList := nil;
    LIssuerListSize := SizeOf(LIssuerList);
    LStore := TWinHttpLib.GetCertStore;

    if WinHttpQueryOption(LRequest.FWRequest, WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST, LIssuerList, LIssuerListSize) and (LIssuerList <> nil) then
    begin
      FillChar(LSearchCriteria, SizeOf(LSearchCriteria), 0);
      LSearchCriteria.cbSize := SizeOf(LSearchCriteria);
      LSearchCriteria.cIssuer := LIssuerList.cIssuers;
      LSearchCriteria.rgIssuer := LIssuerList.aIssuers;

      if LStore <> nil then
      begin
        LPrevChainContext := nil;
        while True do
        begin
          LClientCertChain := CertFindChainInStore(LStore, X509_ASN_ENCODING,
            CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG or CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG,
            CERT_CHAIN_FIND_BY_ISSUER, @LSearchCriteria, LPrevChainContext);

          if LClientCertChain <> nil then
          begin
            LPrevChainContext := LClientCertChain;
            LClientCert := LClientCertChain.rgpChain^.rgpElement^.pCertContext;
            AddToCertificateList(LClientCert);
          end else
            Break;
        end;
      end;
      GlobalFree(HGLOBAL(LIssuerList));
    end else
    begin
      if LStore <> nil then
      begin
        LClientCert := nil;
        while True do
        begin
          LClientCert := CertFindCertificateInStore(LStore,
            X509_ASN_ENCODING or PKCS_7_ASN_ENCODING,
            0, CERT_FIND_ANY, nil, LClientCert);
          if LClientCert <> nil then
            AddToCertificateList(LClientCert)
          else
            Break;
        end;
      end;
    end;
  end;
  ACertificateList.Clear;
  ACertificateList.AddRange(FCertificateList);
end;
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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 19:25:13.


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