Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

luizcnr

Membros
  • Posts

    34
  • Joined

  • Last visited

Everything posted by luizcnr

  1. Daniel, boa tarde! De acordo com o que você sugeriu, entrei em contato com a Elgin e eles retornaram com a solução, ou seja, criaram um .ini. Está disponibilizado no link do GIT HUB da Elgin. https://github.com/ElginDeveloperCommunity/SAT/tree/master/Elgin/SMART SAT/Bibliotecas Windows O arquivo .ini, obtém a seguinte informação: [Logging] # Aceita info, debug e trace #level = trace # Onde escrever o log #file = /tmp/sat.log [Connection] # Usar conexao continua com o dispositivo continuous = false # Hub onde o dispositivo esta conectado #hub = 2 # Porta onde o dispositivo esta conectado #port = 1 # Serial do dispositivo #serial = 900021403 No caso, a solução está no continuous, ao passar false, a própria DLL irá liberar a porta automaticamente, sem precisa passar a função pelo ACBr, sem necessitar das alterações. Abaixo segue, uma explicação de como funciona as funções da DLL Elgin: https://github.com/ElginDeveloperCommunity/SAT/wiki/Trabalhando-com-vários-SATs-no-PDV
  2. Foi encaminhado a seguinte resposta do suporte da Elgin: Bom dia Luiz, Não temos, tem que ser chamado essa função para que a dll libere a porta USB após fazer o seu uso.
  3. Posso perguntar ao suporte da Elgin, se essa nova DLL deles, tem alguma configuração para acessar por INI ou XML. Pois, só foi me passado a função e modo como ela está funcionando.
  4. Sim, era o que eu estava pensando tb. Por isso, eu acabei comentando a linha que apresenta o erro na detecção de função. //raise EACBrSATErro.Create( Format(cACBrSATFuncaoNaoEncontrada, [FuncName,sLibName]) ) ; Pois, iria ficar apresentando o erro em outra fabricante. Eu realizei um teste com o SAT Control ID tb.
  5. Daniel, esse método é específico do fabricante. Foi criado pelo fato da porta do SAT, ficar aberta quando havia a emissão de cupom e não liberava ela. Não deixava a outra aplicação acessar para emissão do cupom. Anexei a DLL da fabricante, caso tenha alguma dúvida. dllsat.dll
  6. Resolvi inserindo uma nova funcionalidade no .pas do ACBrSAT. A nova função tem nome de DesabilitarConexaoContinua. Caso, alguém tenha o mesmo problema, estou anexando as unit com alteração. Obs. No .pass ACBRSATClass, na procedure FunctionDetectLibSAT, precisei comentar a seguinte linha: //raise EACBrSATErro.Create( Format(cACBrSATFuncaoNaoEncontrada, [FuncName,sLibName]) ) ; Pois, caso a DLL não fosse fosse da Elgin, não iria existir essa função e iria apresentar o erro. ACBrSAT.pas ACBrSATClass.pas ACBrSATDinamico_cdecl.pas ACBrSATDinamico_stdcall.pas
  7. Galera, bom dia! O SAT da Elgin, estava com um problema ao trabalhar com duas aplicações para emissão de cupom fiscal. A DLL, estava travando a porta e estava retornando a seguinte mensagem: 539810|9999|SAT Desconectado Entramos em contato com a Elgin e eles identificaram uma falha na DLL deles e implementaram uma nova função.: DesabilitarConexaoContinua(); Preciso chamar essa nova função. Porém, a minha dúvida é a seguinte, o ACBr irá implementar essa nova função? Ou devo instanciar essa DLL e chamar essa função? Estou anexando a DLL de testes que foi encaminhada. dllsat.dll
  8. A Elgin, entrou em contato e passou uma nova DLL. Porém, essa DLL tem uma nova função a ser chamada. Como posso estar fazendo isso com o ACBr? Alguém pode me dar um luz a respeito desse tipo de situação?
  9. Galera, entramos em contato com a Elgin e eles identificaram o mesmo problema nos testes por lá também. Ou seja, eles irão atualizar a DLL e irão encaminhar para nós. Assim, que atualizarmos e os testes estiverem OK, posto aqui essa DLL atualizada. Obrigado pela ajuda.
  10. Os dois sistemas emitem cupom SAT, Victor. Mas, eles não são executados ao mesmo tempo para emissão do cupom ao mesmo tempo. Ao finalizar o cupom, está sendo executada a função ACBrSAT1.DesInicializar.
  11. Sim, utilizamos o mesmo caminho da DLL. O SAT está ligado somente na USB, não tem fonte de alimentação.
  12. Obrigado pelo retorno, Antonio Carlos. O driver está instalado corretamente. Pois, o software da Elgin, comunica com o SAT normalmente. O que ocorre, é o seguinte... Temos dois softwares que emitem SAT, um é controle de mesas e outro é o Delivery. Funciona normalmente emitindo cupom por um software ou pelo outro, porém, após um tempo o SAT para de emitir os cupons e emite a mensagem de erro. Mas, ao realizar o teste com o software de comunicação da Elgin, o SAT está em funcionamento. Porém, ao realizar os testes o sistema não emite o cupom, pois exibe a mensagem de erro, dizendo que o SAT está desconectado.
  13. Galera, boa tarde! Estou com um problema com o [email protected] Elgin Smart. Ao emitir o cupom fiscal, o SAT está retornando a seguinte mensagem de erro: 539810|9999|SAT Desconectado Já entrei em contato com a fabricante e atualizado a DLL, porém o erro persiste. Alguém já passou por algum problema parecido?
  14. Ao exportar o certificado, não habilitou a chave privada. Acabou ocasionando todo esse transtorno por aqui.
  15. Juliomar, foi identificado um problema na importação no certificado do cliente. Resolvemos o problema, exportando e importando novamente o certificado no internet explorer. Obrigado pela ajuda!
  16. Juliomar, tentei deixar somente a opção de SSLLib setada, porém, exibe a mensagem de invalid property value. Mas, de qualquer forma, executei o instalador, reinicie a máquina e tentei emitir a NFe. Foi apresentado o mesmo erro. Na minha máquina de desenvolvimento, é WINDOWS 10, a NFe é emitida normalmente. Mas, na máquina do cliente, está ocorrendo o erro.
  17. Juliomar, obrigado pelo retorno. Mas, essa opção já está marcada. Conforme imagem, abaixo. As demais configurações:
  18. Boa tarde, galera! Estou com um problema de erro SSL em algumas máquinas WINDOWS 10. O erro ocorre tanto para Certificado A1, quanto para A3. Ao tentar emitir a NFe, apresenta o seguinte erro: Erro Interno: 12030 Erro HTTP: 0 URL: https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx Falha Recebendo Dados. Erro:Erro: 12030 - A conexão com o servidor foi redefinida ou encerrada, ou um protocolo SSL incompatível foi encontrado. As configurações no ACBrNFe, está da seguinte forma: SSLLib: libWinCrypt SSLCyptLib: cryWinCrypt SSLHttpLib: httpWinHttp SSLXmlSignLib: xsLibXml2 Realizei algumas pesquisas no fórum e nenhuma solução conseguiu me ajudar. Alguém já passou por algum problema parecido?
  19. iJSONEnviar.AddFormField('sku', iJSON, 'utf-8', 'application/json').ContentTransfer := '8bit'; //Configura o HTTP IdHTTPConexao.Request.Clear; IdHTTPConexao.Request.ContentType := 'multipart/form-data; boundary=' + iJSonEnviar.Boundary; IdHTTPConexao.Request.CharSet := 'utf-8'; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data'); IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); IdHTTPConexao.Response.ContentType := 'application/json'; IdHTTPConexao.Response.CharSet := 'utf-8'; Com esse meu código, eu recebi o retorno de 201, indicando que os novos parâmetros foram criados. No meu código eu não precisei colocar essa linha IdHTTPConexao := TidHTTP.Create;
  20. A solução encontrada, foi a seguinte: iJSONEnviar := TIdMultiPartFormDataStream.Create; try iJSON := ('{"merchantId": merchantID,' + //ID do Restaurante (MerchantID)", '"externalCode":"311",' + //COD PDV, código do sistema '"availability": "AVAILABLE",' + //Disponibilidade do item, AVAILABLE OU UNAVAILABLE '"name": "X BURGUER - TESTE 2",' + //Nome do Item, '"description": "",' + //Descrição do Item (Composição) '"order": 2,' + //Ordem para o item aparecer no cardápio '"schedules": [],' + '"price":{' + '"originalValue": 0,' +//Valor Original do Item (Somente preencher caso o item estiver em promoção) '"promotional": false,' + //Item está em promoção? True ou False '"value": 12.50}'+ '}'); //Valor do item (Valor que vai para aparecer na plataforma Ifood) mRetorno.Lines.Clear; mRetorno.Lines.Add(iJSON); iJSONEnviar.AddFormField('sku', iJSON, 'utf-8', 'application/json').ContentTransfer := '8bit'; //Configura o HTTP IdHTTPConexao.Request.Clear; IdHTTPConexao.Request.ContentType := 'multipart/form-data; boundary=' + iJSonEnviar.Boundary; IdHTTPConexao.Request.CharSet := 'utf-8'; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data'); IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); IdHTTPConexao.Response.ContentType := 'application/json'; IdHTTPConexao.Response.CharSet := 'utf-8'; try IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONEnviar); //201 = Indica que novos parâmetros foram criados com sucesso if IdHTTPConexao.ResponseCode = 201 then Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'), 'Informação', MB_OK+MB_ICONINFORMATION); except on e:EIdHTTPProtocolException do begin if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then begin Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' + e.ErrorMessage), 'Aviso', MB_OK+MB_ICONWARNING); Exit; end; end; end; finally FreeAndNil(iJSONEnviar); end;
  21. Alguém por aí, consegue ter alguma ideia do que possa ser? Já estou perdido, sem saber muito o que fazer...
  22. Infelizmente continua com a mesma mensagem de erro. Então, realmente... Já vi diversos exemplos e me retorna várias vezes esse erro de "Unsupported Media Type". O teste que obtive o resultado de 201 via POSTMAN, gerou esse seguinte código: POST /v1.0/skus HTTP/1.1 Host: pos-api.ifood.com.br Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW Authorization: Bearer (tokenGerado) User-Agent: PostmanRuntime/7.19.0 Accept: */* Cache-Control: no-cache Postman-Token: 76987055-3ed2-4452-a4b1-fcc1b740af63,140a3c1e-1692-4f6d-9584-66848489a7b3 Host: pos-api.ifood.com.br Accept-Encoding: gzip, deflate Content-Length: 410 Connection: keep-alive cache-control: no-cache Content-Disposition: form-data; name="sku" { "merchantId": merchantId, "availability": "AVAILABLE", "externalCode":"201", "name": "FANTA LATA", "description": "", "order": 2, "schedules": [], "price": { "originalValue": 0, "promotional": false, "value": 12.50} } ------WebKitFormBoundary7MA4YWxkTrZu0gW--
  23. Ficou dessa maneira o fonte: iJSONStream := TStringStream.Create(iJSON, TEncoding.UTF8); (Nessa linha tentei passar somente o iJSON //Configura o HTTP IdHTTPConexao.Request.Clear; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json'); IdHTTPConexao.Response.CharSet := 'UTF-8'; try IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONStream, AResponseContent); iRespostaIfood := AResponseContent.DataString; //201 = Indica que novos parâmetros foram criados com sucesso if IdHTTPConexao.ResponseCode = 201 then Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'), 'Informação', MB_OK+MB_ICONINFORMATION); except on e:EIdHTTPProtocolException do begin if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then begin Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' + e.ErrorMessage), 'Aviso', MB_OK+MB_ICONWARNING); Exit; end; end; end; É apresentado o seguinte erro: --------------------------- Aviso --------------------------- Atenção! Ocorreu ao Cadastrar Produto no iFood. <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback. </p><div id='created'>Tue Nov 05 16:56:09 GMT-03:00 2019</div><div> There was an unexpected error (type=Unsupported Media Type, status=415). </div><div>Unsupported Media Type</div></body></html>
  24. Tentei das seguintes formas: Onde estava o IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType); como foi comentado, mudei para IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data'); E me apresentou o seguinte erro: --------------------------- Aviso --------------------------- Atenção! Ocorreu ao Cadastrar Produto no iFood. <html><body><h1>Whitelabel Error Page</h1><p> This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'> Tue Nov 05 15:47:05 GMT-03:00 2019</div><div>There was an unexpected error (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: java.io.IOException: Missing initial multi part boundary</div></body></html> Se eu comentar a linha citada, me apresenta o erro seguinte erro: --------------------------- Aviso --------------------------- Atenção! Ocorreu ao Cadastrar Produto no iFood. <html><body><h1>Whitelabel Error Page</h1><p> This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'> Tue Nov 05 15:47:05 GMT-03:00 2019</div><div>There was an unexpected error (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: java.io.IOException: Missing initial multi part boundary</div></body></html> E de outra forma, se eu crio uma variável iJSONEnviar : TIdMultipartFormDataStream; E passo em IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType); Me retorna o seguinte erro: --------------------------- Aviso --------------------------- Atenção! Ocorreu ao Cadastrar Produto no iFood. <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p> <div id='created'>Tue Nov 05 15:54:19 GMT-03:00 2019</div><div>There was an unexpected error (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: java.io.IOException: Missing initial multi part boundary</div></body></html>
  25. Então, eu já tentei das duas formas. No POSTMAN, eu usei o seguinte JSON: { "merchantId": 292468, "availability": "AVAILABLE", "externalCode":"201", "name": "FANTA LATA", "description": "", "order": 2, "schedules": [], "price": { "originalValue": 0, "promotional": false, "value": 12.50} } Foi retornado o código 201, sendo criado o produto na API do iFood. Eu acho que o problema, esteja no momento de passar os parâmetros no form-data. Mas, ainda não descobri qual a forma correta de passar esse JSON para criar o produto, via Delphi.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.