Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 25-01-2024 em todas as áreas

  1. 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; Se você ainda usa o ACBrTEFD {$IFDEF DEBUG} if (ACBrTEFD1.GPAtual = gpPayGoWeb) then begin ACBrTEFD1.TEFPayGoWeb.PGWebAPI.IsDebug := True; end; {$ENDIF} 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
    8 pontos
  2. Bom dia @Diego Foliene Fiz o teste com Cuiabá/MT, acredito que seja o servidor fora de serviço em Varzea Grande, como o @Renato Rubinho falou. Em Cuiabá recebi algumas falhas de validação, enviei a imagem em anexo, vou ver se consigo resolver, mas pelo menos a falha de comunicação não esta acontecendo.
    2 pontos
  3. Problema resolvido. Esse cliente não tinha logo pra impressão e eu uso a função "ImprimirImagemArquivo". Então estava ocorrendo o erro mencionado acima. Tive que verificar se há logo antes de chamar a função with PosPrinter do begin if DANFE.Logo <> '' then ImprimirImagemArquivo(DANFE.Logo); end;
    2 pontos
  4. Verifica se o equipamento está com o Firmware Atualizado... Usa cp850 ou cp860 Certifique-se de estar usando a tag </zera> no inicio de cada relatório Por favor faça testes com o Demo do ACBr, para conferirmos os resultados
    2 pontos
  5. Boa tarde, não sou o analista responsável pela analise do seu caso, mas olhando a suponho que está sendo feito o seguinte fluxo : -> Boleto Numerado pela Aplicação Emitente -> Ficha Impressa pelo Emissor e Enviado para o Cliente -> Arquivo de Remessa gerado -> Arquivo de Remessa Registrado no Banco porem, se analisar o manual do banco essa carteira o nosso número não é numerado pela empresa, e sim, numerado pelo banco, sendo: -> Arquivo de Remessa gerado -> Arquivo de Remessa Registrado no Banco -> Processa o Arquivo de Retorno -> Boleto Numerado pela Aplicação Bancária -> Ficha Impressa pelo Emissor e Enviado para o Cliente ambas linhas digitáveis tem que ser idênticas, tanto emitida pelo sistema, como pelo portal do banco, se está havendo divergência, é algum parâmetro ou momento que está sendo gerado fora se sincronia. Tambem, lembrando que precisa informar o código de CNAB de integração, que esse código compõe a linha digitavel, esse código é capturado nas informações da conta corrente no banco.
    1 ponto
  6. entendo, farei isso, obrigado
    1 ponto
  7. Está correto. Como o Diego disse, olhei aqui e o programa de exemplo não tem o preenchimento centralizado pela SSLLib. Aparentemente não existe um método na lib para setar a SSLLib e retornar as demais configurações auto-ajustadas para exibição no programa de exemplo. Testei com o programa em c# via lib e também com o programa em Lazarus, com o componente nativo, ambas as urls de homologação estão fora, mas produção funcionou em ambos os programas de exemplo. Com certeza o ambiente de homologação está fora, a menos que tenha uma terceira url de acesso para o ambiente funcional. Perfeito, siga os testes no município que o ambiente está funcionando até eles normalizarem o ambiente de homologação do outro.
    1 ponto
  8. Bom dia! Apenas fornecendo um retorno. Já encontramos a causa do problema e estamos trabalhando na correção. Acredito que entre hoje ou amanhã, no mais tardar segunda-feira, vamos conseguir disponibilizar uma nova versão para que possa testar.
    1 ponto
  9. Bom dia @Italo Giurizzato Junior e @José Botan.. Está correto, é assim mesmo. O SSLLib que o Italo se refere é uma espécie de "Wrapper", onde você configura ele as propriedades CryptLib, HttpLib e XMLSignLib são configuradas automaticamente. Na lib, ele não é usado, você define as configurações diretamente. Pode utilizar o exemplo. Por favor, como mencionou, faça o teste utilizando outra cidade para verificar qual será o comportamento.
    1 ponto
  10. humm.. estava indo uma String vazia... De qualquer forma, acho que seria bom esse método do ACBr, ImprimirImagemArquivo, verificar se o Parâmetro de entrada é válido... @Daniel InfoCotidiano, pode por favor criar uma tarefa para essa questão ?
    1 ponto
  11. Bom dia @Paulo R G Oliveira, Se tratando de NFS-e, devemos atualizar praticamente todos os dias e reinstalar o ACBr. Outra coisa, você esta usando o novo componente ACBrNFSeX ?
    1 ponto
  12. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  13. (RESOLVIDO) Eu já descobri, eu estava informando os dados do Cedente e somente depois informava o banco ao componente, com isso, ele deveria pegar a regra do banco que estava anterior no componente. obrigado e desculpa!
    1 ponto
  14. Vou revisar tudo Daniel. Obrigado. At.te.
    1 ponto
  15. @Marcio Marcondes Obrigado pela contribuição. Criado a TK-5034 para analise do time.
    1 ponto
  16. Você testou essa alteração que o Diego passou?
    1 ponto
  17. Boa noite @JOSE VICENTE Conseguiu resolver o problema do outro tópico? Também aparentava ser problema de configuração e talvez este seja o motivo.
    1 ponto
  18. @Vitor SuasVendas Boa tarde ! Estou trabalhando na sua tarefa, e realmente o ValorRecebido esta vindo zerado; O valor recebido é a captura da posição 93/102 como o @Diego Foliene reportou acima. Pode por favor questionar o banco sobre isso ? pq deveria vir nessa posição. Vou até anexar os meus prints para que vc possa questionar o banco. Arquivo de retorno vs Manual do Banco:
    1 ponto
  19. O exemplo que postei e usando a DLL com a classe disponibilizada aqui NFE_Imprimir([cImpressora], [nNumCopias], [cProtocolo], [bMostrarPreview], [cMarcaDagua], [bViaConsumidor], [bSimplificado]); NFe_Imprimir(XP-80,1,,True) // ,False,False,False) ou NFe_Imprimir(XP-80,1,,1) // ,False,False,False)
    1 ponto
  20. use o lib do acbr que nada mais é que uma dll no lugar do monitor. conforme já sugeri a ele
    1 ponto
  21. Bom dia Juliano. Fiz algo parecido. Implementei um servidor web local que recebe as requisições da minha aplicação web. Esta aplicação web estabelece as conexões sockets com o ACBrMonitor. Observo porém que performence não é das melhores. Atualmente estamos implementando uma aplicação desktop com todos os componentes do ACBr. Fizemos com que essa aplicação desktop permita as conexões websocket diretamente. A performance tem sido bem maior. De modo geral, o caminho é esse, ter uma ponte da aplicacação web com a máquina local. Se existe outra forma, não descobri ainda.
    1 ponto
  22. Ola, aqui uso assim e funciona de boa usando a classe em harbour hResult:=hHandleDllNfe:Imprimir(cimpressoraImprimeNfce,1,,'True') antes eu carrego o XML para depois aplicar o comando acima
    1 ponto
  23. Boa tarde ! Como é apenas um programa exemplo é só para ter base como funciona. talvez o path nao esta para ser gravado no ini. A configuração pix no sistema que o sr vai montar, fica junto com os dados do cedente. lembre-se que este é apenas um exemplo. para alimentar dados do pix no componentem exemplo: FACBrBoleto.Cedente.PIX.Chave := '33111222000155'; FACBrBoleto.Cedente.PIX.TipoChavePIX:= tchCNPJ; Estes comandos é para alimentar o componente em tempo de execução, ou seja, quando não tem o componente "visual na tela". FACBrBoleto.Configuracoes.WebService.ArquivoCRT := 'E:\minhapasta\Certificado.crt'; FACBrBoleto.Configuracoes.WebService.ArquivoKEY := 'E:\minhapasta\Certificado.key'; FACBrBoleto.Configuracoes.WebService.VersaoDF:= 'V2'; Vou mostrar um exemplo se fosse componente visual na tela: Sempre que precisar de manuais, temos aqui: http://svn.code.sf.net/p/acbr/code/tools/Bancos/ No caso de webservices: http://svn.code.sf.net/p/acbr/code/tools/Bancos/9998-Boletos_Via_WebService/ Especificamente Sicredi http://svn.code.sf.net/p/acbr/code/tools/Bancos/9998-Boletos_Via_WebService/748-Sicred/Manual_da_API_da_Cobranca_1.2_1.pdf
    1 ponto
  24. Tendo em vista o grande número de dúvidas(aqui no fórum e também no nosso canal do Discord) sobre como configurar os PSPs no componente ACBrPIXCD, estou criando esse tópico para auxiliar nesse procedimento. Irei utilizar como base nosso demo do componente, que está disponível no SVN, em: "...\trunk2\Exemplos\ACBrPIXCD\". 1. Configurando Recebedor e PSP Atual 1.1. Configurações utilizando o componente Para configurar o Recebedor e o PSP atual, utilizando o próprio componente ACBrPIXCD, preencha as seguintes propriedades: ACBrPixCD1.Recebedor.Nome := ''; ACBrPixCD1.Recebedor.CEP := ''; ACBrPixCD1.Recebedor.Cidade := ''; ACBrPixCD1.Recebedor.UF := ''; ACBrPixCD1.PSP := ; ACBrPixCD1.Ambiente := ; Além dessas configurações básicas, também é possível configurar o caminho do arquivo de log, o nível do log gerado e, caso sua rede utilize proxy, será necessário configurá-lo nas propriedades a seguir: ACBrPixCD1.Proxy.Host := ''; ACBrPixCD1.Proxy.Port := ''; ACBrPixCD1.Proxy.User := ''; ACBrPixCD1.Proxy.Pass := ''; ACBrPixCD1.ArqLOG := ''; ACBrPixCD1.NivelLog := 0; Obs: Níveis de log: 0 - Nenhum 1 - Baixo 2 - Normal 3 - Alto 4 - Muito Alto 1.2. Configurações utilizando o aplicativo de demonstração Na aba "Configurações > PIX" preencha os dados solicitados e selecione o PSP que irá utilizar, conforme imagem abaixo: 2. Solicitando as credenciais do PSP Esse procedimento é feito de diferentes formas para cada PSP. Selecione o PSP desejado:
    1 ponto
  25. Boa tarde Hugo, Acabei de fazer um teste, coloquei: Cedilha e vogal acentuada, o componente realizou a troca pela letra "C" e pela vogal sem o acento. Com a opção de configuração: Configuracoes.Geral.RetirarAcentos := True; A questão não é gerar o XML e sim carregar ele. Vai ser necessário conversar com o seu cliente no que se refere a acentuação, apesar que no manual fazer referencia apenas ao nome do funcionário, no meu entendimento isso deve ser estendido para todos os campos que são alfa números, por exemplo: Endereço, observação, descrição do cargo, da função, entre outros.
    1 ponto
  26. mantenhas as DLLs do OpenSSL e da LibXML2, na mesma pasta do seu .EXE http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/LibXml2/x86/ http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.0.2.21/x86/
    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.