Ir para conteúdo
  • Cadastre-se

Messias Bittencourt

Membros Pro
  • Total de ítens

    254
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por Messias Bittencourt

  1. Boa tarde,
    estou recebendo o seguinte erro quando faço uma requisição a aplicação.

    Alguém tem alguma luz sobre o problema?

     

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  SIGSEGV (0xb) at pc=0x0000783200caaed2, pid=26387, tid=26417
    #
    # JRE version: OpenJDK Runtime Environment (21.0.6+7) (build 21.0.6+7-Ubuntu-122.04.1)
    # Java VM: OpenJDK 64-Bit Server VM (21.0.6+7-Ubuntu-122.04.1, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
    # Problematic frame:
    # C  [libacbrboleto64.so+0x2aaed2]
    #
    # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /opt/tomcat/bin/core.26387)
    #
    # An error report file with more information is saved as:
    # /opt/tomcat/bin/hs_err_pid26387.log
    [14.113s][warning][os] Loading hsdis library failed
    #
    # If you would like to submit a bug report, please visit:
    #   https://bugs.launchpad.net/ubuntu/+source/openjdk-21
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #
     

  2. 12 horas atrás, Messias Bittencourt disse:

    Boa noite pessoal.

    Tenho uma aplicação consumindo o .so do boletoACBr. Já estamos em Produção com mais de um Banco.
    No caso do Santander, novo banco que estamos homologando, estamos passando por um problema no PDF (o registro é realizado com sucesso).

    O pdf que é gravado na pasta definida no servidor está com um QrCode e Linha Digitável diferentes da que realmente foi registrada no Banco Santander.

    Assim sendo, quando tentamos pagar o PDF salvo pela biblioteca, ele mostra "Boleto não registrado...". O Santander disponibiliza um serviço para recuperar o pdf pelo nosso Número. Ao recuperar o mesmo boleto verificamos que não é o mesmo Código de barras nem linha digitável.

    Envio anexo pdf gravado pela biblioteca (GeradoPelaBiblioteca.pdf) e o pdf recuperado no Banco Santander (RecuperadoPeloBanco.pdf) para checagem.

    Observem que apenas alguns blocos de dados são divergentes...

    Recuperado no Banco: image.thumb.png.5066d035cd5b0c329bb8ff676ecfbfcc.png

    Gerado pela biblioteca: image.thumb.png.2ad1f3239e0daf20e4e3dc51eae41b67.png

    Como proceder?

    Att

    image.png

    Isto no ambiente de PROD do Banco Santander. Resumo: conseguimos pagar o boleto que vem do serviço "Recupera PDF" fornecido pelo banco mas não o gravado na pasta pela biblioteca.

  3. Boa noite pessoal.

    Tenho uma aplicação consumindo o .so do boletoACBr. Já estamos em Produção com mais de um Banco.
    No caso do Santander, novo banco que estamos homologando, estamos passando por um problema no PDF (o registro é realizado com sucesso).

    O pdf que é gravado na pasta definida no servidor está com um QrCode e Linha Digitável diferentes da que realmente foi registrada no Banco Santander.

    Assim sendo, quando tentamos pagar o PDF salvo pela biblioteca, ele mostra "Boleto não registrado...". O Santander disponibiliza um serviço para recuperar o pdf pelo nosso Número. Ao recuperar o mesmo boleto verificamos que não é o mesmo Código de barras nem linha digitável.

    Envio anexo pdf gravado pela biblioteca (GeradoPelaBiblioteca.pdf) e o pdf recuperado no Banco Santander (RecuperadoPeloBanco.pdf) para checagem.

    Observem que apenas alguns blocos de dados são divergentes...

    Recuperado no Banco: image.thumb.png.5066d035cd5b0c329bb8ff676ecfbfcc.png

    Gerado pela biblioteca: image.thumb.png.2ad1f3239e0daf20e4e3dc51eae41b67.png

    Como proceder?

    Att

    image.png

  4. Em 29/08/2024 at 17:26, Messias Bittencourt disse:

    Muito obrigado pelo esclarecimento Diego.
    Eu não sabia desta implementação com uso de ponteiros.

    Já o estou implementando aqui.

    Muito obrigado.

    Muito obrigado pelas orientações Daniel.

     

    Bom dia.

    Gostaria de saber se existe algum outro procedimento que pode ser adotado.

    Mesmo seguinte à risca as orientações, o problema persiste.

    Na realidade é intermitente. Ele começa funcionando normalmente mas de uma hora para outra surge o erro. E após o erro apenas reiniciando a aplicação.

  5. 14 horas atrás, Messias Bittencourt disse:

    Boa noite @antonio.carlos.

    Vou ver se arrumo esta documentação e lhe passo.

    De qq forma e antecipadamente, afirmo que existe sim o uso do certificado.

    Já testei diretamente no Banco via postman. Homologação não precisa. Basta apenas clientId e clientSecret.

    Em produção, também funcionou, mas além destas credenciais acima descritas, precisei utilizar os certificados que o proprietário da conta me forneceu. 

    Att

    Bom dia @antonio.carlos.
    Eles não possuem uma documentação em pdf. Mas acessei aqui o "https://developercielo.github.io/manual/apipix#segurança" com meu usu e senha e te passo abaixo a parte que fala de segurança. Se realizar um cadastro no site "https://desenvolvedores.cielo.com.br/api-portal/" poderá checar a documentação com mais profundidade. Pelo postman eu utilizei os .cer e .key obtendo sucesso.

    Segurança

    Devem ser observadas para desenvolver e implementar a API seguindo boas práticas de segurança, atendendo aos requisitos obrigatórios abaixo.

    Requisitos de segurança obrigatórios:

    1. A conexão à API deve ser criptografada utilizando o protocolo TLS versão 1.2 ou superior, permitindo apenas cipher suites que atendam ao requisito de forward secrecy.
    2. O PSP deve implementar o framework OAuth 2.0 (RFC 6749) com TLS mútuo (mTLS – RFC 8705) para autenticação na API, conforme especificações abaixo:

    a. Os certificados digitais dos clientes da API poderão ser emitidos pelo próprio PSP ou por ACs externas, conforme definido por cada PSP. Não deverão ser aceitos certificados auto-assinados pelo cliente. b. Cada PSP deve possuir seu próprio Authorization Server e Resource Server associado à API Pix, e ambos devem implementar TLS mútuo. c. O Authorization Server do PSP deve implementar a técnica de vinculação do certificado do cliente aos access tokens emitidos (“Client Certificate-Bound Access Tokens”), conforme seção 3 da RFC 8705. d. O Resource Server do PSP deve confirmar que o thumbprint do certificado associado ao access token apresentado pelo cliente é o mesmo do utilizado na autenticação TLS (proof-of-possession). e. O fluxo OAuth a ser utilizado é o “Client Credentials Flow”. f. Os escopos OAuth serão definidos na especificação Open API 3.0 da API Pix e permitirão associar diferentes perfis de autorização ao software cliente.

    1. O processo de cadastro/onboarding do cliente para acesso à API deve ser realizado em ambiente logado no PSP, e deve incluir um canal seguro para envio das credenciais ao usuário, de forma a permitir a rastreabilidade das ações executadas.
    2. A API deve suportar múltiplos níveis de autorização ou papéis, segregando as funcionalidades de acordo com perfis (escopos OAuth) dos usuários clientes.
    3. O PSP deve implementar tecnologia que permita garantir a alta disponibilidade da API.
    4. A API deve garantir a confidencialidade e a integridade das informações dos usuários e de suas transações, tanto em trânsito como em repouso.
    5. O PSP deve manter logs de auditoria dos acessos à API pelo período mínimo de 1 ano.
    6. A credencial de acesso utilizada na autenticação (Client_ID) deve ser vinculada ao CNPJ ou CPF do usuário recebedor e deve permitir acesso a recursos apenas de contas transacionais de titularidade do CNPJ ou CPF associado.
    7. Para a funcionalidade de webhooks, as notificações oriundas do PSP recebedor ao usuário recebedor trafegarão utilizando um canal mTLS.

    a. Recomenda-se que os certificados utilizados para autenticação mútua no canal TLS do webhook sejam os mesmos da API Pix. De todo modo, não há objeção quanto à utilização de outros certificados, mediante acordo entre o PSP e o usuário recebedor.

    O BC entende que os PSPs poderão adotar as tecnologias e soluções de segurança para a API que mais acharem apropriados, desde que sejam atendidos os requisitos obrigatórios de segurança e, sempre que possível, as recomendações descritas acima, com atenção também aos elementos listados nos tópicos a seguir.

    • Curtir 1
  6. 55 minutos atrás, antonio.carlos disse:

    Teria documentação sobre uso dos certificados para o PSP Cielo ? 
    Pois no componente ACBrPIXCD para uso do PSP Cielo, não contem estes campos para uso de certificado..
    image.png

    Boa noite @antonio.carlos.

    Vou ver se arrumo esta documentação e lhe passo.

    De qq forma e antecipadamente, afirmo que existe sim o uso do certificado.

    Já testei diretamente no Banco via postman. Homologação não precisa. Basta apenas clientId e clientSecret.

    Em produção, também funcionou, mas além destas credenciais acima descritas, precisei utilizar os certificados que o proprietário da conta me forneceu. 

    Att

    • Curtir 1
  7. Agora, Juliomar Marchetti disse:

    vou pedir para o pessoal que mantém a lib para conferir

    Muito obrigado pela ajuda @Juliomar Marchetti.
    Eu até cheguei a abrir o fonte da config em https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Fontes/PIXCD/ACBrLibPIXCDConfig.pas.
    Sicoob e Bradesco realmente tem estas properties. 
    Mas o Cielo está sem as mesmas.

    Agradeço se puder dar esta ajuda....

  8. 15 minutos atrás, Messias Bittencourt disse:

    Boa tarde e obrigado pelo auxílio.

    E qual é o nome da ACBRSessao que devo utilizar?

    Eu tentei Cielo mas aparece o erro dizendo que não existe este atributo na Sessão. Já tentei como ArqCertificado e como ArquivoCertificado.

    image.thumb.png.9d59a14fdc37b2881d0306fc98471d88.png
    image.png.8a6d6a8ff86d2519dddf0ac95a02e160.png

    16/10/24 18:01:06:343 - LIB_ConfigGravarValor(Cielo, ArquivoCertificado, C:\dev\pix\certificado\GV-BUS.cer)
    16/10/24 18:01:06:354 -    SetRetorno(-3, Chave [%s] não existe na Sessão [%s] no arquivo de configuração)
     

    Mesmo problem para ArquivoChavePrivada ou ArqChavePrivada

  9. 56 minutos atrás, Juliomar Marchetti disse:

    Boa tarde

    pode usar o mesmo do Bradesco e Sicoob

    pois internamente o componente descende de uma unica classe que contempla de igual

    portanto o campos abaixo tem nelas também, lembrando das distinções de cada um pela sua extensão

    ArqChavePrivada

    Caminho e nome do arquivo KEY.

    ArqCertificado

    Caminho e nome do arquivo PEM.

    ArqPFX

    Caminho e nome do arquivo PFX.

    SenhaPFX

    Senha do arquivo PFX.

    a nível de exemplificação abaixo também temos o código fonte que eles descendem

    image.png

    Boa tarde e obrigado pelo auxílio.

    E qual é o nome da ACBRSessao que devo utilizar?

    Eu tentei Cielo mas aparece o erro dizendo que não existe este atributo na Sessão. Já tentei como ArqCertificado e como ArquivoCertificado.

    image.thumb.png.9d59a14fdc37b2881d0306fc98471d88.png
    image.png.8a6d6a8ff86d2519dddf0ac95a02e160.png

    3 minutos atrás, Messias Bittencourt disse:

    Boa tarde e obrigado pelo auxílio.

    E qual é o nome da ACBRSessao que devo utilizar?

    Eu tentei Cielo mas aparece o erro dizendo que não existe este atributo na Sessão. Já tentei como ArqCertificado e como ArquivoCertificado.

    image.thumb.png.9d59a14fdc37b2881d0306fc98471d88.png
    image.png.8a6d6a8ff86d2519dddf0ac95a02e160.png

    16/10/24 18:01:06:343 - LIB_ConfigGravarValor(Cielo, ArquivoCertificado, C:\dev\pix\certificado\GV-BUS.cer)
    16/10/24 18:01:06:354 -    SetRetorno(-3, Chave [%s] não existe na Sessão [%s] no arquivo de configuração)
     

  10. 23 horas atrás, Diego Foliene disse:

    Boa tarde!

    Não basta apenas alterar o .so.

    Também existe uma diferença na forma como você faz o bind e a chamada dos métodos, pois na Lib MT, você precisa passar um ponteiro como Handle.

    Mais detalhes em ACBrLib e MultiThread

    Muito obrigado pelo esclarecimento Diego.
    Eu não sabia desta implementação com uso de ponteiros.

    Já o estou implementando aqui.

    Muito obrigado.

    9 horas atrás, Daniel InfoCotidiano disse:

    @Messias Bittencourt
    Apenas complementando o que o @Diego Foliene citou, existe exemplos em java (MT) é multithread.
    https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Java/Boleto/Demo/ACBrLibBoletoMT.Demo/
    cada requisição recebida na sua api, vc vai criar um "ponteiro" como o diego citou e todos os metodos vc vai usar o mesmo ponteiro. assim vc vai identificar para qual requisição é a resposta (ponteiro)
    Exemplo: (estou mostrando o CEP, mas é só para vc abstrair a ideia)

    acbr_lib.CEP_Inicializar(ponteiro,"/00111222000195/acbrlib.ini","")
    acbr_lib.CEP_ConfigGravarValor(ponteiro,"Principal", "TipoResposta", "2")
    acbr_lib.CEP_BuscarPorCEP(ponteiro, "13930000", sResposta, ctypes.byref(esTamanho))
    acbr_lib.CEP_Finalizar(ponteiro)

    Muito obrigado pelas orientações Daniel.

     

    • Curtir 3
  11. Boa tarde Srs.

    Estou utilizando o boleto em um ambiente Linux (arquivo .so).
    Até então venho utilizando o .so que se encontra na pasta Cdecl ou StdCall.
    Funcionando tudo normal desta forma.
    Só pelo fato de eu alterar o .so, utilizando a mesma versão, para o que se encontra na pasta MT/Linux ocorre o erro abaixo.
    Como deu o erro e já estou em ambiente de produção, voltei com o .so que funciona para dar continuidade. Já viram algo parecido?

     

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  SIGSEGV (0xb) at pc=0x00007f236ec4c37b, pid=1489, tid=1514
    #
    # JRE version: OpenJDK Runtime Environment (11.0.24+8) (build 11.0.24+8-post-Ubuntu-1ubuntu322.04)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.24+8-post-Ubuntu-1ubuntu322.04, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
    # Problematic frame:
    # C  [libacbrboleto64.so+0x24c37b]
    #
    # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/ubuntu/core.1489)
    #
    # An error report file with more information is saved as:
    # /home/ubuntu/hs_err_pid1489.log
    #
    # If you would like to submit a bug report, please visit:
    #   https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #

    Att

  12. Em 30/07/2024 at 08:40, Daniel InfoCotidiano disse:

    Para ficar documentado no forum, pode so interagir dizendo q a lib enviada para testes com credenciais de producao resolveu o problema de finepercentage.
    assim vou subir a correção para que seja disponibilizada na proxima compilacao. obr

     

    41 minutos atrás, Messias Bittencourt disse:

    E o interessante é que o log mostra tudo ok. Teve um response conforme manda o figurino. Mas parece que algo que falta no Linux não é capaz de me devolver corretamente. Aí devolve apenas a url do pdf.

    ACBrLibBoleto-20240806.log 431.12 kB · 0 downloads LogWS-Sicoob.log 146.66 kB · 0 downloads

     

    Senhores, resolvido a questão. Era o endereçamento do pdf que estava com a barra invertida. Aff

  13. 2 horas atrás, Messias Bittencourt disse:

    Boa tarde.

    Implementei aplicação java + BoletoLib para 3 bancos.
    No Windows a consulta, baixa e geração funcionam normalmente.

    Mas ao migrar para o linus a Geração de Boletos me devolve apenas a URL do pdf no servidor. O Boleto é gerado com sucesso tanto que depois eu consigo consultar o mesmo. Mas o retorno pós geração vem conforme imagem abaixo:

    image.png.09b30e6360d13c6b069db05de29f6e88.png

    Sabem o que deve ser? Creio eu que esteja faltando alguma config ou instalação neste meu servidor Linux. Conseguem me dar um help?

    Att

    E o interessante é que o log mostra tudo ok. Teve um response conforme manda o figurino. Mas parece que algo que falta no Linux não é capaz de me devolver corretamente. Aí devolve apenas a url do pdf.

    ACBrLibBoleto-20240806.logLogWS-Sicoob.log

  14. Boa tarde.

    Implementei aplicação java + BoletoLib para 3 bancos.
    No Windows a consulta, baixa e geração funcionam normalmente.

    Mas ao migrar para o linus a Geração de Boletos me devolve apenas a URL do pdf no servidor. O Boleto é gerado com sucesso tanto que depois eu consigo consultar o mesmo. Mas o retorno pós geração vem conforme imagem abaixo:

    image.png.09b30e6360d13c6b069db05de29f6e88.png

    Sabem o que deve ser? Creio eu que esteja faltando alguma config ou instalação neste meu servidor Linux. Conseguem me dar um help?

    Att

  15. Ao tentar subir o projeto em uma imagem Alpine com o Tomcat estou tendo o erro abaixo na hora que vai fazer o LOAD na biblioteca libacbrboleto64.so

    java.lang.UnsatisfiedLinkError: /boleto/dll/libacbrboleto64.so: Error loading shared library libgdk-x11-2.0.so.0: No such file or directory (needed by /tacom/boleto/dll/libacbrboleto64.so)

     

     

    Ele reclama que não encontra:

    libgdk-x11-2.0.so.0

     

    Estou subindo um container limpo, com base em:

    FROM nginx:alpine

    RUN apk add openjdk11

    E então eu copio meu tomcat:

    RUN mkdir -p /opt/tomcat

    COPY apache-tomcat-10.1.25 /opt/tomcat

     

    O serviço sobe normalmente e funciona no windows, usando a .dll, ao mudar pro container Linux eu fiz essa troca da biblioteca para a versão Linux e estou tendo esse erro. O tomcat está funcionando perfeitamente, subo o projeto e consigo usar, menos quando chega na parte que faz chamadas a biblioteca de boleto.

     

    Por ser um container Docker, pode ser que seja preciso instalar essa biblioteca/dependencia para que a biblioteca de vocês funcione no linux. Como posso instalar ela na minha imagem DOCKER (visto que o Alpine não tem APT ou APT-GET por default)

     

  16. Continuando o post em que mostro como configurar via Maven a biblioteca, agora fiz um exemplo simples que gera o .PDF pra facilitar a vida de quem está querendo começar a utilizar a bibliteca em seus projetos Java.

     

    Para configurar esse projeto você precisa colocar na pasta arquivos_ini a sua DLL, (não zipei junto pq o anexo limite é 2mb.

     

    Os diretórios estão fixos pois é apenas para fins de demonstração o codigo, e eles devem ser configurados no arquivo:

    AcBrBoleto.java

    As variaveis:

    ACBR_BOLETO_DLL, CEDENTE_INI, TITULO_INI, DIRETORIO.

     

    E o nome do arquivo gerado na linha 31 ao usar a função:

    INSTANCE.Boleto_SetDiretorioArquivo

     

    O codigo anexado pode ser enviado para o SVN da ACBR caso queiram, como exemplo, com um link apontando para esse post para facilitar a vida de quem precisar.

    O projeto é simples mas isso pode ser o pontapé inicial de quem está querendo usar a biblioteca com Java, pois o exemplo existente hoje usa o Netbeans que não é mais a principal IDE do Mercado e da forma como está feito agora pode ser importado em qualquer IDE.

     

    O post inicial está em:

     

    Você também pode ver o HELP.MD que vai conter as instruções lá.

     

     

     

     

     

     

    boleto-simples - bkp.zip

    • Curtir 1
    • Obrigado 1
  17.  

    Olá pessoal!

    Seguem abaixo os passos que segui para configurar o ACBr via Maven para usar com Eclipse ou IntelliJ.

    Os passos foram relativamente simples Buildar o Ac Br Commons, exporar um jar (1.0.0)

    Pega esse Jar e instalar no seu Maven Repository
    mvn install:install-file -Dfile="C:\projetos\AcBr\boleto-service\src\main\resources\lib\ACBr Common.jar" -DgroupId="br.com.acbr" -DartifactId="acbr" -Dversion="1.0.0" -Dpackaging="jar"

    E adicionar no projeto as dependencias:

    <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.9.0</version></dependency>

    <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>5.9.0</version> </dependency>

    <dependency> <groupId>br.com.acbr</groupId> <artifactId>acbr</artifactId> <version>1.0.0</version> </dependency>


    Trouxe para cá pois isso pode ajudar outra pessoa a fazer essa configuraçao, pois pouca gente usa o NetBeans.... maioria usar o Eclipse ou o IntelliJ... e com essa configuração via Maven, essa dependencida do Netbeans mostrada nos videos não é mais necessária, se torna opcional.

    • Curtir 3
    • Obrigado 2
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.