Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation since 19-04-2024 em todas as áreas

  1. Olá Pessoal, Caso alguém tenha informações sobre as cidades abaixo no que se refere a provedor, URLs, schemas, por favor nos informes. A ideia é fazer com que o componente ACBrNFSeX atenda o maior numero possível de cidades acima de 100 mil habitantes. Cidades com mais de 200 mil habitantes não atendidas pelo componente: 2303709 Caucaia/Ceará - Trabalha com formato TXT e no site tem a opção para importar o arquivo Cidades com menos de 200 mil e mais de 100 mil habitantes não atendidas pelo componente: 1301902 Itacoatiara/Amazonas 1303403 Parintins/Amazonas 1500107 Abaetetuba/Pará 1501709 Bragança/Pará 1501808 Breves/Pará 1502103 Cametá/Pará 1505502 Paragominas/Pará 1507953 Tailândia/Pará 1508100 Tucuruí/Pará 1600600 Santana/Amapá 2103307 Codó/Maranhão 2107506 Paço do Lumiar/Maranhão 2111201 São José de Ribamar/Maranhão 2306405 Itapipoca/Ceará 2307700 Maranguape/Ceará 2510808 Patos/Paraíba 2513703 Santa Rita/Paraíba 2600054 Abreu e Lima/Pernambuco 2606804 Igarassu/Pernambuco 2612505 Santa Cruz do Capibaribe/Pernambuco 2613701 São Lourenço da Mata/Pernambuco 2900702 Alagoinhas/Bahia 2924009 Paulo Afonso/Bahia 3300308 Barra do Piraí/Rio de Janeiro 3302270 Japeri/Rio de Janeiro 3516408 Franco da Rocha/São Paulo 3547304 Santana de Parnaíba/São Paulo Ultima checagem com o arquivo ACBrNFSeXServicos.ini realizada na data de 19/04/2024.
    5 pontos
  2. Olá Pessoal, Mais um documento fiscal eletrônico a vista. Portal do DC-e: Portal da Declaração de Conteúdo Eletrônica (svrs.rs.gov.br) Está disponível no Portal dos Documentos Fiscais Eletrônicos a área temática dedicada a Declaração de Conteúdo Eletrônica - DCe. Nesta área poderá ser encontrado material técnico como Manuais e Schemas, Legislação, Notícias e serviços relacionados ao documento fiscal. O que vem a ser o DC-e: O Projeto DCe tem como objetivo a implantação de um modelo nacional de declaração de conteúdo eletrônica, visando a substituir a sistemática de utilização da declaração de conteúdo em papel, melhorando a visibilidade dessa declaração e permitindo, ao mesmo tempo, o acompanhamento em tempo real das operações. No Portal encontramos os Manuais e os Schemas, ainda não estão disponíveis as URLs de homologação e de produção (vamos aguardar). Para informações sobre a legislação, acesso o portal pois estão disponíveis tanto o ajuste SINIEF que instituiu o DC-e quanto o Ato COTEPE.
    4 pontos
  3. Olá pessoal! O envio do MDFe de forma assíncrona está com os dias contados, com a previsão de ser encerrado no dia 30/06/2024. O tópico abaixo tem mais detalhes a respeito. Mas fica então o questionamento, o que muda? Bem, antes de falar sobre isso, vamos responder a outra pergunta: Qual é a diferença entre o envio assíncrono e o envio síncrono? De maneira bem simples, a diferença entre essas formas de envio é a quantidade de conexões que é feita para com o web service da Sefaz. No envio assíncrono, primeiro sua aplicação envia o XML para o web service e recebe um número de recibo. Então, a aplicação faz uma nova requisição para o web service consultando o número de recibo para obter as rejeições ou em caso de sucesso o MDFe. Já no envio síncrono, em uma só requisição é enviado para o web service e na resposta já vem as rejeições ou o MDFe quando em caso de sucesso. Se você pensou: Isso se deve ao fato de que visando auxiliar os desenvolvedores que utilizam o componente, esse processo é automatizado, ou seja, a consulta já era feita automaticamente pela solução. Entendi a diferença entre os modos de envio, mas o que eu preciso mudar na minha aplicação? A primeira coisa que você deve se atentar é no comando que utiliza para fazer o envio do MDFe para o web service. Veja quais são os parâmetros do método Enviar no comando nativo. // Parâmetros do método Enviar: // ALote = Número do Lote // AImprimir = Se True imprime automaticamente o DAMDFE // ASincrono = Se True o envio é no modo Síncrono, caso contrario Assíncrono. ACBrMDFe.Enviar(Alote, AImprmir, ASincrono); Estes parâmetros são refletidos também nos comandos tanto da Lib: MDFE_Enviar(ALote, AImprimir, ASincrono, sResposta, esTamanho); Quanto do Monitor: MDFE.ENVIARMDFe(nXMLMDFe, [nLote], [nAssinar],[nImprimi],[nImpressora], [bAssincrono], [bEncerrado] ) Parâmetros: nXMLMDFe - Caminho do XML do MDF-e nLote - Número do Lote (opcional) nAssinar - Assinar o XML (opcional - informe 0 para não assinar) nImprimi - Imprimir MDF-e (opcional - informe 1 para imprimir) nImpressora - Nome da Impressora (opcional) bAssincrono - Por padrão o envio é Assíncrono, informa "False" para envio Sincrono bEncerrado - Imprimir Mensagem de "MDFe Encerrado", (opcional - informe 1 para imprimir) Então, a partir de 30/06/2024, será preciso informar corretamente o parâmetro que define o modo de envio, para que o mesmo seja feito de forma síncrona. No momento de ler o retorno, também serão necessárias mudanças. Caso utilize o componente nativo para Delphi/Lazarus, a classe que vai ler as informações não é mais a Retorno e sim a Enviar. //Ao invés de ler as informações de: ACBrMDFe.WebServices.Retorno.XXXX //Agora vai ler de: ACBrMDFe.WebServices.Enviar.XXXX Se você utiliza o Monitor ou a Lib, a principal diferença será no momento de ler as informações do MDFe. No envio assíncrono elas ficavam contidas na seção [MDFe + Número do MDFe], no entanto, na resposta do envio síncrono elas ficam em [MDFe+ Chave de Acesso do MDFe]. Mas eu não tenho a Chave de Acesso ainda, como vou conseguir ler? A chave de acesso de um documento fiscal deve ser montada seguindo uma regra estabelecida no MOC. Por isso, tanto a Lib quanto o Monitor possuem um método específico que se alimentado com as informações necessárias devolvem a chave de acesso montada. São eles: MDFe.GerarChave para o Monitor. MDFe_GerarChave para a Lib. Portanto, fazendo uso deste método é possível obter a informação que é precisa para realizar a leitura da seção.
    4 pontos
  4. Olá Pessoal, Muitos DF-e (Documentos Fiscais Eletrônicos) foram implementados para o seu envio ser em Lotes contendo de 1 até 50 documentos. Esse modo de envio em lote funciona no modo assíncrono. Outros DF-e já foram implementados com o modo de envio unitário, ou seja, só podemos enviar um documento por vez, consequentemente esse modo de envio funciona no modo síncrono. A primeira diferença que podemos notar é: No envio assíncrono podemos enviar um lote contendo de 1 até 50 documentos, já no envio síncrono podemos enviar somente um documento por vez. A segunda diferença diz respeito ao retorno: No envio assíncrono temos como retorno do webservice um numero chamado de Recibo que atesta que o webservice recebeu o lote enviado, por outro lado no envio síncrono não temos o numero do Recibo como retorno. A terceira diferença se refere ao resultado do processamento: No envio assíncrono devemos realizar uma consulta se utilizando do numero do Recibo. É o retorno dessa consulta que nos vai dizer se o(s) documento(s) enviado(s) para o webservice foi ou foram processado(s) com sucesso. Já no envio síncrono não temos no retorno o numero do Recibo, logo não temos como realizar a consulta pelo numero do Recibo, alias não se faz necessário uma vez que no retorno do envio síncrono o que temos de retorno já é o resultado do processamento, portanto já temos na resposta se o documento foi processado com sucesso ou não. DF-e que já nasceram com o modo de envio Síncrono: BP-e = Bilhete de Passagem Eletrônico BP-e TM = Bilhete de Passagem Eletrônico Transporte Metropolitano GTV-e = Guia de Transporte de Valores Eletrônico DC-e = Declaração de Conteúdo Eletrônica NFCom = Nota Fiscal de Comunicação Eletrônica DF-e que nasceram com o modo de envio Assíncrono e que mudaram ou vão mudar para Síncrono: CT-e = Conhecimento de Transporte Eletrônico (desde 06/2023 só funciona o modo Síncrono) CT-e OS = Conhecimento de Transporte Eletrônico Outros Serviços (desde 06/2023 só funciona o modo Síncrono) MDF-e = Manifesto de Documentos Fiscais Eletrônicos (Modo Assíncrono será desativado em 30/06/2024) NFC-e = Nota Fiscal ao Consumidor Eletrônica (desde 04/09/2023 só funciona o modo Síncrono) DF-e que possui os dois modos de envio Assíncrono e Síncrono: NF3-e = Nota Fiscal de Energia Elétrica Eletrônica Observação: Notem que nas listas acima não aparece a NF-e = Nota Fiscal Eletrônica, o motivo é que a NF-e nasceu somente com o modo Assíncrono de envio, depois passou a ter o modo de envio Síncrono, mas este modo não se encontra disponível na SEFAZ de São Paulo e Bahia. O Fisco já sinalizou que pretende acabar com o modo de envio Assíncrono da NF-e, deixando somente o modo Síncrono. A motivação para essa mudança é que por volta de 90% dos lotes recepcionados por todas as SEFAZ de todas as UF possuem somente um documento. Sendo assim não faz muito sentido consumir dois serviços (Recepção e Consulta) para apenas um documento, lembrando que no modo Assíncrono se faz necessário a Consulta pelo numero do Recibo para obter o resultado do processamento. Já que 90% dos contribuintes enviam as suas notas de forma unitária, ou seja, uma nota por vez, tanto a SEFAZ quanto o desenvolvedor do Software sairiam ganhando com essa mudança, pois a SEFAZ eliminaria o serviço de Consulta pelo numero do Recibo e o Software ficaria mais rápido pois não precisaria executar essa consulta. Quando vai ocorrer essa mudança não sei, o Fisco não disse quando, mas vai ocorrer. Codificação para quem utiliza os componentes: A titulo de exemplo será utilizado o componente ACBrMDFe, mas podemos replicar para os demais. O método Enviar possui 3 parâmetros: function Enviar(const ALote: String; Imprimir: Boolean = True; ASincrono: Boolean = False): Boolean; overload; ALote = Numero do Lote que contem os documentos a serem enviados para o webservice da SEFAZ. Imprimir = Se True (valor padrão) diz que o Documento Auxiliar vai ser impresso no final do processo, se False diz que não vai ser impresso. ASincrono = Se False (valor padrão) diz que o modo de envio é Assíncrono, se True diz que o modo de envio é Síncrono. Exemplo de Envio no modo Assíncrono (só deve ser utilizado pelos DF-e que ainda possuem esse modo de envio): ACBrMDFe1.Enviar(NumLote); ou ACBrMDFe1.Enviar(NumLote, False); Exemplo de leitura do retorno do envio no modo Assíncrono: with MemoDados do begin Lines.Add(''); Lines.Add('Envio MDFe'); Lines.Add('tpAmb: ' + TpAmbToStr(ACBrMDFe1.WebServices.Retorno.tpAmb)); Lines.Add('verAplic: ' + ACBrMDFe1.WebServices.Retorno.verAplic); Lines.Add('cStat: ' + IntToStr(ACBrMDFe1.WebServices.Retorno.cStat)); Lines.Add('xMotivo: ' + ACBrMDFe1.WebServices.Retorno.xMotivo); Lines.Add('cUF: ' + IntToStr(ACBrMDFe1.WebServices.Retorno.cUF)); Lines.Add('xMsg: ' + ACBrMDFe1.WebServices.Retorno.Msg); Lines.Add('Recibo: ' + ACBrMDFe1.WebServices.Retorno.Recibo); Lines.Add('Protocolo: ' + ACBrMDFe1.WebServices.Retorno.Protocolo); end; Exemplo de Envio no modo Síncrono (utilizado pelos DF-e que só possuem ou também tem este modo de envio): ACBrMDFe1.Enviar(NumLote, True, True); ou ACBrMDFe1.Enviar(NumLote, False, True); Exemplo de leitura do retorno do envio no modo Síncrono: with MemoDados do begin Lines.Add(''); Lines.Add('Envio MDFe'); Lines.Add('Chave: ' + ACBrMDFe1.Manifestos[0].MDFe.procMDFe.chMDFe); Lines.Add(''); Lines.Add('tpAmb: ' + TpAmbToStr(ACBrMDFe1.WebServices.Enviar.tpAmb)); Lines.Add('verAplic: ' + ACBrMDFe1.WebServices.Enviar.verAplic); Lines.Add('cStat: ' + IntToStr(ACBrMDFe1.WebServices.Enviar.cStat)); Lines.Add('xMotivo: ' + ACBrMDFe1.WebServices.Enviar.xMotivo); Lines.Add('cUF: ' + IntToStr(ACBrMDFe1.WebServices.Enviar.cUF)); Lines.Add('xMsg: ' + ACBrMDFe1.WebServices.Enviar.Msg); Lines.Add('Recibo: ' + ACBrMDFe1.WebServices.Enviar.Recibo); end;
    2 pontos
  5. Olá boa tarde Diego!! Após quebrar a cabeça aqui achei o problema ... era a versão do java que estava desatualizada aqui no PC. Obrigada pela atenção!
    2 pontos
  6. Bom dia @Aggille Sistemas de Gestão, Na versão 2.04 devemos atribuir o código da Obra e a Arte nos respectivos campos: NFSe.ConstrucaoCivil.CodigoObra := 'código da obra'; NFSe.ConstrucaoCivil.Art := 'arte';
    2 pontos
  7. Reportando. Funcionou perfeitamente a propriedade pathNome. Muito obrigado @Renato Rubinho !!!
    2 pontos
  8. Bom dia @Lindomar S. Menezes, O MDF-e foi enviado no modo Assíncrono ou Síncrono?
    2 pontos
  9. Mudanças na certificação digital devem começar em junho, diz presidente do ITI https://capitaldigital.com.br/mudancas-na-certificacao-digital-devem-comecar-em-junho-diz-presidente-do-iti/ Contribuição de @Arimateia Jr
    2 pontos
  10. Obrigado, antes de você mandar eu já tinha reiniciado uma instalação do zero, e deu tudo certo !! Obrigado a todos
    2 pontos
  11. Olá pessoal, espero que estejam todos bem. Compartilho com voçês um projeto em que venho trabalhando, acabei tendo que deixar o projeto de lado por algum tempo, mas agora estou trabalhando nele e devo disponibilizar os fontes nos proximos dias.
    2 pontos
  12. Boa tarde executando em meu ambiente de testes com escala monitor 100% ACBrNFe.DANFE.NovaEscala := 96; ACBrNFe.DANFE.AlterarEscalaPadrao := False;
    2 pontos
  13. to ligado @Daniel InfoCotidiano nessa minha api roda outras features tbm, nesse caso não posso deixar que um componente/unit altere o padrão, por isso isolei o componente e manipulei a maneira como ele usa o defautl do s.o (fork), apesar de não concordar não vem ao caso, com os ajustes que apliquei esta funcionando e não vou ter problema quando pessoal do time ajustar alguma coisa, mesmo assim fico grato pela atenção que deram sobre o caso, muito obrigado. Att.
    2 pontos
  14. Boa tarde @ANDERSON JUNIOR GADO DA SILVA Falando com o time isso foi colocado pq servidores como Amazon são em inglês e alguns usuários sugeriram isso. Comportamento com meu ambiente de testes: Utilizado diretivas do Linux no LAzarus: Resultou como esperado: Quando não usamos ele pega padrão do Sistema Operacional, mas add a virgula como separador decimal.
    2 pontos
  15. @C4Dev, Muito obrigado pela colaboração, já Inclui na minha lista de tarefas para analise.TK-5362
    2 pontos
  16. Bom dia. Vou entrar em contato com eles. Obrigado por enquanto.
    2 pontos
  17. Você salvou as dlls na mesma pasta na aplicação? No seu primeiro print está selecionada homologação, tente mudar para produção. Teste com o programa de exemplo no cliente para ver se ocorre o mesmo problema, na aba consultas existe o botão Consulta Cadastro
    1 ponto
  18. Bom dia Antonio, Muito obrigado pela colaboração, já inclui na minha lista de tarefas para analise. TK-5379
    1 ponto
  19. Bom dia @ROGERIOHFB, Veja se isso lhe ajuda:
    1 ponto
  20. Bom dia @Mcq Desenvolvimentos, Usando os Schemas que se encontram na pasta: ...\Exemplos\ACBrDFe\Schemas\CTe ocorre o mesmo erro? Lhe pergunto isso, pois nessa pasta existe o arquivo cteModaAquaviario_v4.00.xsd Ao atualizar o ACBr, você atualiza todos os fontes de todas as pastas? Após a atualização reinstala o ACBr? Após a reinstalação compila a aplicação com a opção Build? Siga sempre esta lista: Você tem fontes do ACBr com alterações locais? Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit. Atualize todos os fontes de todas as pastas. Reinstale o ACBr com a opção de apagar arquivos antigos marcada. Compile a aplicação com a opção Build. Por fim repita os testes.
    1 ponto
  21. 1 ponto
  22. A diferença agora me parece estar no final da URL para a qual é feita a requisição. Esta é a informação do TxId. Conferindo no log da Lib, você utilizou: WANO80 para ela. Veja o valor que consta no log do teste no exemplo nativo: 93920DE81DCB43EA9C09FB8425AB3782 Conforme manual dos padrões para iniciação no PIX, o TxId precisa respeitar essas regras: Por favor, corrija o valor do TxId respeitando as especificações e faça um novo teste.
    1 ponto
  23. Opa Italo, bom dia. Tudo bem? Vou fazer com os exemplos que você me passou Muito Obrigado.
    1 ponto
  24. Bom dia Castro, Após o envio no modo Síncrono se o MDFe foi autorizado você pode pegar a chave da seguinte forma: Chave := ACBrMDFe1.Manifestos[0].MDFe.procMDFe.chMDFe; Mas também você pode obter a chave da seguinte forma: Chave := ACBrMDFe1.Manifestos[0].NumID; Essa segunda forma se faz necessário que o o XML do MDFe tenha sido gerado.
    1 ponto
  25. Não. ambos são distintos. então não tem problemas ter os dois
    1 ponto
  26. Em homologação no PR se sim está ocorrendo erro lá sim
    1 ponto
  27. Olá pessoal! Foi publicado um aviso no Portal da Nota Fiscal Eletrônica informando que os ambientes autorizadores de NFe da Sefaz de Pernambuco vão passar por uma parada emergencial no dia 24/04/2024 às 17 horas para ajustes na infra estrutura de redes, com previsão de permanecer indisponíveis por um período de 4 horas. Durante esse tempo, os contribuintes deverão realizar a emissão de nota em contingência que de acordo com o painel Situação SVC será ativada no dia 24/04/2024 às 16h30 e encerrada às 08h00 do dia 25/04/2024. Para utilizar as soluções ACBr em contingência durante este período, siga as orientações deste tópico:
    1 ponto
  28. Ainda não tive... e pelo que notei, a DLL nova PGWebLib, está com problemas para solicitar dados do PinPad... estou tentando resolver isso com eles, primeiro...
    1 ponto
  29. Boa noite, Obrigado pela contribuição. Foram enviadas correções ao SVN que devem resolver o problema relatado, Rev-33416 Por favor atualize os fontes, reinstale os componentes, verifique se o problema foi resolvido e, se possível, nos informe se foi o resultado esperado.
    1 ponto
  30. @Tiago.T.Caldas Boa noite, algumas informações do Bradesco são contraditório, estou falando direto com areia técnica da API, eles estão verificando essa situação, porque existe até um manual de consulta e baixa de boleto. Manual_Consulta_Bradesco.rar
    1 ponto
  31. 1 ponto
  32. Boa tarde Willian, Abra o arquivo ACBrNFSeXServicos.ini Altere a URL e siga os passos que se encontram no inicio do arquivo.
    1 ponto
  33. Bom dia, testado e aprovado, vou atualizar no cliente muito obrigado
    1 ponto
  34. Boa tarde @phulano, Neste caso você vai usar o ACBrLibNFSe (se o power cobol lhe permite consumir DLL) ou o ACBrMonitor Plus que trabalha com troca de arquivos TXT. Essas empresas de Jaú/SP são os primeiros a lhe solicitar emissão de NFS-e? Se sim, reforço a leitura do tópico sugerido pelo @Diego Foliene.
    1 ponto
  35. É difícil saber exatamente o que é sem entender exatamente onde o erro é levantado. Por exemplo, tem um problema bem parecido relacionado ao uso de TClientDataset. Veja: https://stackoverflow.com/a/8147950/460775 Talvez você precise debuggar no cliente ou criar um sistema de log de erros pra poder ter uma ideia de onde o erro acontece.
    1 ponto
  36. Bom dia ! Na realidade fiz a alteração apos um usuario pro reportar no discord, ele testou e aprovou. nos meus testes tbm deu certo. dai vi q vc tbm passava por isso e te notifiquei. lembre-se de ajustar as margens do seu boleto.
    1 ponto
  37. @Fabiano Moraes de Araújo Boa tarde Segue o mesmo padrão Itau Bradesco:
    1 ponto
  38. isso Single Thread, peguei pelo TortoiseSVN
    1 ponto
  39. respondido em : https://discord.com/channels/798697718800318484/798965726974312458/1230895838042128494
    1 ponto
  40. Para constar, estamos tendo relatos semelhantes no Discord. Então quanto mais pessoas reportarem mais chances deles levarem a sério o problema.
    1 ponto
  41. Aparentemente não tem relação com ACBr Não esta hardcoded uma impressora por exemplo q existe em seu ambiente e no usuario não ? apenas uma suposição nao consegue detalhar a exceção gerando um log? se é quando acessa cadastro algum parametro de conexao ou consulta inicial?
    1 ponto
  42. Bom dia @Italo Giurizzato Junior! Isso mesmo, o provedor é o mesmo, SmarAPD, só que eles agora estão utilizando a versão 2.04 da ABRASF, antes era layout próprio mesmo. Vou entrar em contato com eles. Obrigado pela atenção.
    1 ponto
  43. bom dia @Italo Giurizzato Junior, entendido, farei a alteração e o teste, na sequencia dou um retorno.
    1 ponto
  44. Bom dia @leonard.miranda, Criei uma nova TK para o pessoal que cuida das impressões em Fast Report analisar. TK-5356
    1 ponto
  45. Enviei as alterações ao SVN... Commit [r33340]
    1 ponto
  46. Olá comunidade do ACBr, Gostaríamos de informar que já se encontra no SVN do ACBr, mudanças na Unit ACBrTEFPayGoWebComum.pas, que permitem a aplicação usar a nova PGWebLib, com recurso de atualização automática e proteção contra fraudes, usando o "warsaw" A PayGo disponibiliza um manual detalhado, sobre essa nova versão e como instala-la... Ele está anexo nesse tópico, até termos um endereço oficial da PayGo Porque a PayGo efetuou essas modificações ? Uma resposta curta: Segurança Todo sistema que manipula transações financeiras, pode ser alvo de um ataque Hacker, onde as transações podem ser desviadas para uma outra conta destino... Um grupo especializado nesse tipo de ataque é o "Prilex".... Por isso, sempre instrua os seus usuários, a NUNCA permitir o acesso remoto a máquina sem a autorização da Sw.House Com essa nova versão da DLL PGWebLib, a PayGo utiliza uma camada de proteção de Software já reconhecida e utilizada por vários serviços financeiros, o Warsaw A atualização da DLL também é um fator muito importante para ela se manter segura. Outro fato é que o certificado usado na comunicação TLS, sempre terá um prazo de validade, obrigado a atualização da PGWebLib, e com essa nova versão a atualização pode ocorrer de forma automática, enquanto a aplicação PDV não está sendo executada. Onde posso baixar a nova PGWebLib ? Documentação e SDK podem ser encontrados em: https://paygodev.readme.io/docs/kit-para-atualização-da-documentação Como instalar a nova PGWebLib Com essa nova versão, não basta apenas distribuir a "PGWebLib.dll", junto com a sua aplicação. Na verdade isso não será mais permitido A PayGo fornecerá um instalador completo, que é de Simples instalação... Esse instalador cuidará de copiar a PGWebLib.dll na pasta correta e protegida, além de instalar o "Cliente Windows", que ficará no Systray da máquina Windows, e será responsável pela atualização da PGwebLib Através de variáveis de ambiente o ACBr saberá onde a PGWebLib.dll está instalada e fará uso dela... (leia mais sobre isso, abaixo) Se você deseja automatizar o processo de instalação da PGWebLib, em conjunto com o instalador da sua aplicação, isso e possível, pois o instalador da PayGo pode ser executado no modo "silent" e "verysilent". Exemplo SetupPayGo_full_v5.1.25.1.exe /verysilent A sua aplicação que consome a PGWebLib diretamente, você não precisará fazer uso do "Cliente Windows". Ou seja, apesar dele estar sempre no Systray do Windows ele não precisará ser aberto ou utilizado pelo usuário... Ele será carregado para o Systray, na inicialização do Windows, com o único intuito de verificar por atualizações da PGWebLib Ativando o Cliente Windows com as informações do PDC O Cliente windows, já é utilizado por vários tipos de TEF da PayGo, como o TEF por API ControlPay e o TEF por Troca de Arquivos TXT Para configurarmos o Cliente Windows para uso como atualizador da PGWebLib, precisamos mudar a chave no topo, para que ele mude a interface para "Ativação - PGWebLib" (imagem abaixo) Após isso, basta inserir o CNPJ do Cliente final, e o PDC, e clicar em Ativar Como ativar um PDC em modo de Homologação ? Abra o Cliente Windows clique 3x com o botão direito do mouse no Logo "PayGo", no Topo da janela. Quando ele solicitar a pergunta "Digite o Ambiente" escreva a palavra "Demo" O Client Windows assumirá a cor "roxa", sinalizando que o modo Demonstração foi ativado O que muda na sua aplicação, que usa nossos componentes do ACBrTEFD e ACBrTEFAPI ? Esperamos que nenhuma mudança seja necessária nos seus fontes, a não ser é claro, atualizar os fontes do ACBr e compilar uma nova versão com as alterações efetuadas na Unit ACBrTEFPayGoWebComum.pas Todos os ajustes necessários para consumir a nova PGWebLib, foram introduzidos nessa Unit do ACBr, e ela também cuida de Ler a Gravar valores nas variáveis de ambiente, para verificar por atualizações e sinalizar quando a PGWebLib pode ser atualizada Para conhecer as mudanças em detalhes mais técnicos, veja abaixo a transcrição do Change-Log Os fontes de ACBrTEFPayGoWebComum.pas continuam compatíveis com a versão antiga da DLL ? SIM. Os fontes do ACBr ajustam suas chamadas conforme a versão da DLL, portanto essa Unit é compatível com a DLL antiga e a atual. Eu não uso os componentes do ACBr. Como posso ajustar minha aplicação ? Por favor leia a documentação em anexo, ela descreve em detalhes e dá exemplos de código das implementações necessárias... Veja ainda, o Change-Log do ACBr (abaixo), para compreender as mudancas que implementamos em nossos fontes Mas basicamente você precisará efetuar as seguintes modificações: NÃO MAIS copiar a PGWebLib.dll para pasta de sua aplicação, agora você deve usar a PGWebLib.dll que está instalada na pasta segura (veja item 2) Ler o conteúdo da variável de ambiente PathPGWebLib ou PathPGWebLib_x64, para saber qual é o Caminho completo para a DLL que deve ser carregada, e utilizar ela na sua aplicação (lembrando que você só deve usar a DLL de 64 bits se a sua aplicação é compilada em 64 bits) Chamar o novo método PW_End, antes de sua aplicação encerrar ( para encerrar o processo de proteção ao seu executável e a DLL ) Gravar o valor "True" na variável de ambiente PGWebLibPermiteAtualiza, quando a sua aplicação encerrar (opcional) Quais são as variáveis de ambiente utilizadas pela PGWebLib ? Antes de conhecer as variáveis, saiba que os componentes do ACBr já fazem uso dela, de forma automática e intuitiva (veja o Chenage-Log, abaixo) PathPGWebLib: Path completo da PGwebLib.dll que deve utilizada pela aplicação PathPGWebLib=C:\Program Files (x86)\PayGo\PGWebLib\PGWebLib.dll PathPGWebLib_x64: Versão 64 bits da PGWebLib, e que deve ser utilizada APENAS se você compila sua aplicação em 64 bits PathPGWebLib_x64=C:\Program Files (x86)\PayGo\PGWebLib\x64\PGWebLib.dll PGWebLibAtualiza: Terá os Valores "True" ou "False", definidos pelo Client e Windows. Quando "True", indica que há uma atualização pendente, para a PGWebLib. PGWebLibAtualiza=False PGWebLibPermiteAtualiza: Terá os Valores "True" ou "False". Deve ser manipulada pela automação comercial, para que a mesma sinalize ao Client Windows, quando este pode baixar e atualizar a PGWebLib. Isso evita atualizações em horários indesejados, permitindo a aplicação comercial, definir a melhor estratégia para a atualização. É uma boa prática a automação comercial ligar essa variável de ambiente, sempre que for encerrada. PGWebLibPermiteAtualiza=True CPFCNPJ: Opcional, pode ser utilizada pela aplicação, para definir o CNPJ do cliente final, automatizando o processo de ativação do Cliente Windows PontoDeCaptura: Opcional, pode ser utilizada pela aplicação, para definir o PDC que deve ser utilizado pelo Cliente Windows Usando a DLL protegida, em ambiente de Desenvolvimento Em ambiente de Desenvolvimento, usar a DLL protegida, pode tornar difícil o desenvolvimento... O Warsaw irá detectar que um Debugger está tentando executar a DLL, e causará algum erros como "privileged instruction" Pensando nisso, a PayGo disponibilizou uma DLL para ser usada em modo Debug. Você poderá encontrá-la em: C:\Program Files (x86)\PayGo\PGWebLib\DEBUG Observe que os fontes do ACBr, já tentarão fazer uso dessa DLL, quando o compilador detectar que o programa está sendo compilado em modo Debug. Isso é feito pela nova propriedade IsDebug Você pode ativar ela, usando TypeCast, exemplo: if (ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb) then begin with TACBrTEFAPIClassPayGoWeb(ACBrTEFAPI1.TEF) do begin DiretorioTrabalho := 'C:\PAYGOWEB'; // Permite informar o diretório de trabalho da PGWebLib //TEFPayGoAPI.PathLib := 'C:\temp\64bits\PGWebLib.dll'; // Permite forçar o uso de uma DLL específica, diferente do definido em "PathPGWebLib" {$IFDEF DEBUG} TEFPayGoAPI.IsDebug := True; // <---------- AQUI ------------ {$EndIf} end; end; Change-Log de ACBrTEFPayGoWebComum.pas [*] Modificações para suportar nova DLL 4.1.25.3, PayGo Windows no modo atualizador da PGWebLib. [+] Adicionado mapeamento para o comando "PW_End". Esta função tem como finalidade encerrar alguns serviços e remover a proteção do Warsaw da automação, possibilitando a realização da atualização. [*] Estrutura "TPW_GetData", modificada, removendo campo "bIndice: Byte" que não fazia parte da Estrutura original [*] Métodos "ObterDadoCartao", "RealizarOperacaoPinPad", "LogPWGetData", modificados para receber o indice do Parâmetro sendo processado na estrutura TPW_GetData [+] Adicionado o método: "function GetPathPGWebLib: String;" Retorna o valor da variável de ambiente "PathPGWebLib" (32 bits) ou "PathPGWebLib_x64" (64 bits), e que contem o Path completo da DLL PGWebLib, com proteção, e que deve ser carregada pela aplicação [+] Adicionado o método: "function GetPGWebLibAtualiza: Boolean;" Que Verifica o conteúdo da Variável de Ambiente "PGWebLibAtualiza". Essa variável de ambiente fica com o Valor "TRUE", quando há atualizações disponíveis para a PGWebLib. [+] Adicionado o método: "function SetPGWebLibPermiteAtualiza(PermiteAtualizacao: Boolean): Boolean;" Permite que a aplicação configure a variável de ambiente "PGWebLibPermiteAtualiza" Quando a aplicação grava nela o valor "TRUE", permite que o Cliente Windows da Paygo, baixe e atualize a PGWebLib da pasta "PathPGWebLib" [+] Adicionada a propriedade: "AtualizaPGWebLibAutomaticamente: Boolean default True" Quando essa propriedade é True (padrão), o valor de "PGWebLibPermiteAtualiza" será ajustado para True, sempre que TACBrTEFPGWebAPI.DesInicializar for chamado [*] Método "TACBrTEFPGWebAPI.Destroy", modificado para chamar "DesInicializar" [*] Método "TACBrTEFPGWebAPI.Inicializar" mmodificado para configurar a variável de ambiente "PontoDeCaptura", se a propriedade "PontoCaptura" estiver com valor definido a variável de ambiente "CPFCNPJ" se a propriedade "CNPJEstabelecimento" estiver com valor definido. [*] Método "TACBrTEFPGWebAPI.Inicializar", grava no Log o estado da variável de ambiente "PGWebLibAtualiza" [*] Método "TACBrTEFPGWebAPI.DesInicializar" passa a chamar "PW_End", para encerrar o processo de proteção, e "SetPGWebLibPermiteAtualiza", para permitir a atualização da PGWebLib, conforme o valor da propridade "AtualizaPGWebLibAutomaticamente" [*] Método "TACBrTEFPGWebAPI.LibFullName" modificado para usar o Path definido na variável de ambiente "PathPGWebLib", caso a propriedade "PathLib" esteja vazia. [*] Método "TACBrTEFPGWebAPI.LoadLibFunctions" modificado para gravar no log, o caminho completo da DLL PGWebLib que está sendo carregada (por: DSA) PGWin - Modo atualizador da PGWebLib - v1.04.pdf
    1 ponto
  47. SOLUÇÃO se algum dia alguém se deparar com esse problema basta comentar essas linhas na TACBrTEFDClass.VerificarTransacoesPendentesClass(aVerificarCupom: Boolean). if (wEstadoECF in ['V', 'P', 'N', 'O']) then //CancelarTransacoesPendentesClass else //ConfirmarESolicitarImpressaoTransacoesPendentes;
    1 ponto
  48. CustomPos é outro protocolo... A LX300 usa Esc/P2
    1 ponto
  49. sim todas indexadas, tabela master com 21 mil registros.ja resolvir passei para UNIDAC( 10 X mais rapido que firedac ). nem tudo nativo sao mil maravilhas. o unidac em termos fetch é muito mais poderoso que o firedac.
    1 ponto
×
×
  • 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.

The popup will be closed in 10 segundos...