Ir para conteúdo
  • Cadastre-se

DatawebDev

Membros Pro
  • Total de ítens

    52
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que DatawebDev postou

  1. Usamos o ACBrTEFAPI sem confirmação automática, em uma nova aplicação nossa, ainda em fase de desenvolvimento. Ao tentar autorizar um pagamento em cartão de crédito, componente solicita seleção da Rede Autorizadora, depois pede cartão e senha. Em seguida o Pay&Go retorna TRANSACAO PENDENTE. Implementamos um tratamento de pendências no evento QuandoDetectarTransacaoPendente. Nossa aplicação espera que, durante a inicialização do componente, esse evento seja disparado, caso exista alguma transação pendente. Nesse caso, o componente inicializa, não detecta pendência (não dispara evento), e então aplicação prossegue com a autorização de pagamento. Depois do retorno de TRANSACAO PENDENTE do Pay&Go, componente dispara o evento QuandoDetectarTransacaoPendente, mas o parâmetro RespostaTEF, passado pelo evento, vem vazio. Em anexo o trecho do nosso event handler (TForm1.ACBrTEFAPI1QuandoDetectarTransacaoPendente.pas), escrevendo os dados de RespostaTEF para um arquivo texto, e o arquivo texto contendo os dados de RespostaTEF (dadostransacao.txt). Pelo que parece, o componente não conseguiu manter seu estado de "transação pendente" sincronizado com o Pay&Go, ou o ambiente de teste do Pay&Go está com algum problema, reportando pendência inexistente. Componente só dispararia o evento QuandoDetectarTransacaoPendente, na sua inicialização, quando tiver esse estado de pendência em seus arquivos temporários, correto? Método LimparRespostasTEF() limpa esse estado? Seguindo ACBrTEFAPI_Demo, estamos chamando LimparRespostasTEF() depois do método Inicializar(). Deveríamos fazer isso? Queria saber se esse estado de "pendência no Pay&Go", que não é detectada na inicialização do ACBrTEFAPI, é um bug no ambiente de testes do Pay&Go, ou se devemos tratar esse caso em produção. Se for para tratar, como devemos fazer? Com RespostaTEF retornando vazio, não temos como decidir se a transação deve ser confirmada ou desfeita. Deveríamos desfazer sempre? Em anexo os logs presentes nos diretórios de trabalho do componente e da PGWebLib.dll. Testei com a revision 24534 do ACBr (de 06/02/2022), e PGWebLib.dll v4.1.15.1 . Aplicação feita no Delphi 10.4. TForm1.ACBrTEFAPI1QuandoDetectarTransacaoPendente.pas dadostransacao.txt ACBRTEFAPI.log comms_220216.log ppsers_220216.log
  2. Ao tentar emitir NFSe na prefeitura do Rio de Janeiro/RJ, usando ACBrNFSeX, encontramos dois erros: Serialização da alíquota de ISS ao enviar lote de RPS Web service espera que a alíquota seja uma fração de 1, mas o componente coloca em percentual, ao serializar o TNFSe para XML. Por causa disso, web service retorna erro E928: O valor da alíquota informada para o Código do Serviço Prestado (120801) deve ser superior(ou igual) a 2,00% e inferior (ou igual) a 5,00%. Corrigi esse erro, editando a unit ISSRio.GravarXml.pas. Em anexo a unit editada, e arquivos XML contendo exemplos de como estava antes da correção, e como ficou após. XML inválido em relação ao XSD do web service da prefeitura, ao gerar NFSe Mesmo com a solução do problema anterior no formato da alíquta, método GerarNFSe retorna o erro E160: The element 'Rps' in namespace 'http://notacarioca.rio.gov.br/WSNacional/XSD/1/nfse_pcrj_v01.xsd' has invalid child element 'InfRps' in namespace 'http://notacarioca.rio.gov.br/WSNacional/XSD/1/nfse_p. Testei com e sem a alteração que fiz para a alíquota. Para tentar resolver o problema, baixei a documentação de integração do site da prefeitura, e comparei o XML de exemplo do GerarNFSeEnvio com o gerado pelo componente (imagem abaixo). Notei que os namespaces estavam diferentes, além do XML do exemplo estar assinado, e o gerado pelo componente não estava assinado. Em anexo os arquivos XML gerados pelo componente, e o de exemplo. Tentei corrigir esse problema, mas não consegui. Poderiam me ajudar com esse erro no GerarNFSe? ISSRio.GravarXml.pas ACBrNFSeX-ISSRio-BugAliquotaIss.zip ACBrNFSeX-ISSRio-BugGerarNFSe.zip
×
×
  • 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.