Ir para conteúdo
  • Cadastre-se

Fernando Rafael

Membros
  • Total de ítens

    13
  • Registro em

  • Última visita

Tudo que Fernando Rafael postou

  1. Alguém conhece algum servidor online em que possa consultar a lista de código CEST atribuído a um NCM via API? A Bluesoft (Cosmos) até tem algo bem próximo, mas a consulta de NCM via API deles não retorna os códigos CEST (Irônico pois na busca direto no site, eles retornam). segue o link de comandos da Bluesoft (Cosmos), para conhecimento: https://cosmos.bluesoft.com.br/api
  2. Boa tarde, estou desenvolvendo um aplicativo que baixa arquivos da internet (Através de URL) para uma pasta especifica do celular, porém estou com problemas para realizar este feito, segue as tentativas sem sucesso: URL url = new URL("https://www.site.com/arquivo.pdf"); File file = new File(getFilesDir()+"/PASTA/arquivo_baixado.pdf"); FileUtils.copyURLToFile(url, file); //O comando "copyURLToFile" não existe no Android Nesta outra tentativa o aplicativo trava no comando "url.openStream()": URL url = new URL("https://www.site.com/arquivo.pdf"); File file = new File(getFilesDir()+"/PASTA/arquivo_baixado.pdf"); InputStream is = url.openStream(); //Neste comando o aplicativo trava e fecha. FileOutputStream fos = new FileOutputStream(file); int bytes = 0; while ((bytes = is.read()) != -1) { fos.write(bytes); } is.close(); fos.close();
  3. Hoje foi finalizado meu processo de homologação na PayGo, agradeço a toda equipe do ACBR que me apoiaram em todas as etapas do processo com muito profissionalismo e dedicação. Recomendo a todos que pretendem fazer sua Homologação TEF, mesmo que assim como eu que não utiliza os complementos ACBR, intermediar com eles, pois todas as duvidas e processos burocráticos que tive antes de conhece-los foram resolvidos de forma prática e eficiente.
  4. Oi Juliomar / DanieliLeticia, obrigado pela ajuda, posteriormente deixarei um Feedback para futuros casos semelhantes.
  5. Já mandei vários e-mails, inclusive os citados no manual e no site ([email protected], [email protected], [email protected]) solicitando meu cadastro e instruções para prosseguir com a homologação, mas nuca tive respostas, tentei localizar algum número de suporte ao desenvolvedor, mas não encontrei... Teria algum contato diferente dos que citei? Obrigado.
  6. Oi Juliomar, obrigado pela atenção. Já tinha visto esses tutoriais antes, mas não ajudaram muito, pois todas as explicações são feitas baseadas nos componentes ACBR, como não uso nenhum, não fica claro a parte interna sobre a geração dos arquivos de LOG, apenas citam o diretório dos mesmos gerado pelo componente ACBR. Queria entender onde originalmente esses dados são gerados ou salvos. Pois até então acredito que sejam gerados pelos softwares de homologação da Pay&Go.
  7. Boa tarde, sou novo no ramo de automação e preciso Homologar minha aplicação com a Pay&Go (Modo discado, troca de arquivos), segui todos os passos do manual, está tudo funcionando certinho. Mas estou perdido por onde começar no processo de homologação, pois em pesquisas eu notei que preciso fazer uma série de testes e depois enviar os arquivos de LOGS para um e-mail especifico. AI vem minhas dúvidas: Onde ou como gero esses logs? Preciso me cadastrar com a Pay&Go antes de tentar enviar esses arquivos? Qual o custo para essa homologação? A partir de quando estarei apto a realizar transações com a Pay&Go? Informações complementares: Estou usando o Pay&Go DEMO versão: 004.001.004.001, Sem PIN-PAD (Digito os dados do cartão durante a simulação). NÃO estou usando nenhuma ferramenta de terceiros, como disponibilizado aqui no ACBR, tudo foi desenvolvimento próprio na questão de comunicação com o TEF discado.
  8. Sei que este tópico é antigo,mas tenho a exata resposta. Os leitores Elgin vem configurado como teclado internacional (método ALT), a solução é ativar a leitura em modo "teclado americano". o procedimento e simples usando os comandos em cod. de barras que vem no manual (podendo baixar em PDF). Outra dica é desativar o identificador de código "]C1" (sem aspas), pois em alguns códigos durante a leitura e acrescentado os caracteres "]C1" no inicio, divergindo do código informado no cadastro. visite: sisnorg.com
  9. Vendo em muitos Fóruns, notei que o PHP tem bloqueios para leitura de portas seriais no Windows, sendo necessário configurar ou usar DLL (não encontrei tutoriais do tipo). Bem... Resolvi da forma mais aceitável diante da situação (ambiente Windows): Fiz um programa em JAVA (exportado em um arquivo .jar) que recebe os parâmetros da porta serial e efetua a leitura da mesma. Mas fiz de uma forma mais diretamente "ligada" ao PHP. Sabendo que o arquivo .jar pode ser executado pelo CMD passando até mesmo parâmetros por linha de comando, fiz com que o PHP acionasse esse arquivo pelo comando "exec" ou "passthru" e depois tratei o retorno no próprio PHP, acredito que dessa forma é bem melhor do que ficar criando arquivos .txt para ficar lendo depois... Então, sem mais delongas segue os fontes (JAVA e PHP): PHP: $comando_cmd="java -jar ler_serial.jar 9600 8 1 0 COM3 ENQ"; //Arquivo seguido dos parâmetros que serão capturados pelo arquivo .jar (separados por espaços). OBS: só coloquei parâmetros pois não quis criar um arquivo .jar para cada tipo de porta ou configurações e comandos (ENQ por exemplo serve apenas para saber qual comando será usando no arquivo .jar, deve haver alguma forma de executar os comandos no JAVA que estejam armazenados em uma variável, eliminando assim os "if" e "else" para cada instrução dentro do arquivo .jar). echo passthru($comando_cmd); //exibe o retorno. JAVA: import jssc.SerialPort; //Para funcionar é preciso adicionar no projeto uma biblioteca (usei essa: jSSC-2.7.0-Release.zip), vale pesquisar como adicionar, é fácil import jssc.SerialPortException; //Para funcionar é preciso adicionar no projeto uma biblioteca (usei essa: jSSC-2.7.0-Release.zip), vale pesquisar como adicionar, é fácil //Fonte sobre essa biblioteca: http://nakalabs.herokuapp.com/articles/arduinoAndJava.html public class Main { public static void main(String[] args) throws InterruptedException { //Parametros estáticos, caso não usem os valores passados por linha de comando /* int BAUD_RATE = 9600; int DATA_BITS = 8; int STOP_BITS = 1; int PARITY = 0; String SERIAL_PORT = "COM2"; */ //Armazena os parâmetros nas variáveis int BAUD_RATE = Integer.parseInt(args[0]); //9600 int DATA_BITS = Integer.parseInt(args[1]); //8 int STOP_BITS = Integer.parseInt(args[2]); //1 int PARITY = Integer.parseInt(args[3]); //0 String SERIAL_PORT = args[4]; //COM3 String COMANDO ="ENQ"; //Comando inicial, caso nada seja passado como parametro, vai executar um ENQ (muito comum em comunicação serial) if(args[5].equals("ENQ")){ //Serve apenas para comparar o parâmetro passado e executar algum comando previamente programado COMANDO = ""+(char)5; //Coloquei ""+ (aspas dupla concatenada) só para aceitar como String, pois nem todo comando é do tipo (char) no meu caso } else if(args[5].equals("BEL")){ //Outro comando, e assim vai... COMANDO = ""+(char)7+"p"; //Salientando que esses comandos são das minhas necessidades, isso vai depender do comando que o dispositivo esteja aguardando para retornar algo... } SerialPort serialPort = new SerialPort(SERIAL_PORT); try { //Os comandos "exec" e "passthru" capturam esses retornos, basta exibilos ao seu favor... System.out.println("Porta aberta: " + serialPort.openPort()); System.out.println("Parametros configurados: " + serialPort.setParams(BAUD_RATE, DATA_BITS, STOP_BITS, PARITY)); System.out.println("Enviado mensagem: " + serialPort.writeString(""+COMANDO+"")); //Aqui ele escreve o comando na porta Thread.sleep(1000); //Aguarda 1 segundo para ler a porta //System.out.println("Retorno: " + serialPort.readString()); //Retorno da porta em String System.out.println("Retorno: " + serialPort.readHexString("")); //Retorno da porta em Hexadecimal, Com "" (aspas dupla) no parâmetro, significa que não haverá espaços entre os valores retornados ou colocando qualquer caractere, servirá como separador. System.out.println("Porta fechada: " + serialPort.closePort()); } catch (SerialPortException ex){ System.out.println(ex); } } } Postei essa mesma solução no ACBR, Imaster e Devmedia. nos que suportarem anexos, colocarei também a biblioteca do JAVA zipada. Não sou bom em programação Java, caso alguém tenha melhorias para o código, ficarei muito grato... Vale visitar meu site: www.sisnorg.com (ainda em desenvolvimento, mas funcional para um possível contato comigo). Abraços a todos que me ajudaram nos mais diversos fóruns... PORTA SERIAL JAVA jSSC-2.7.0-Release.zip
  10. Achei um comando em php que seta um timeOut "stream_set_timeout($fp, 10);", mas não funcionou, o PHP continua rodando infinitamente... Achei uns comandos em Powershell de leitura de serial, o mesmo também ficou rodando infinitamente, mas nesse caso eu encontrei um comando que setava um timeout que funcionou, mas não deu retorno... Você pode ter razão em não estar retornando nada, mas estou usando um simulador de balança (filizola/toledo) juntamente com um simulador de porta serial, testo a conexão com um programa de monitoramento de porta ou com o PC Scale da Filizola, e neles eu tenho retorno.... OBS: o simulador de balança tem um botão que envia dados para a porta, sem a necessidade de escrever na porta para que a mesma retorne algo. segue o código em powershell para quem quiser avaliar: $port= new-Object System.IO.Ports.SerialPort COM6,9600,None,8,One $port.ReadTimeout = 10000 $port.Open() while($myinput = $port.ReadLine()) { $myinput } $port.Close()
  11. Boa tarde, estou tendo problemas com leitura de portas com php, segue o código: exec('MODE COM1:9600,n,8,1'); //seta configuração na porta COM $fp=fopen("COM1","r+b"); if(!$fp) { echo("Erro ao abrir a porta com1"); exit; } else { echo("COM1 aberta <br>"); } fwrite($fp,Chr(5)); //escrevendo valor na porta sleep(1); //pausa para retorno dos dados echo (fgets($fp)); fclose($fp); já tentei colocar: fopen("COM1", "r+b"); fopen("COM1", "r+t"); fopen("COM1", "r"); fopen("COM1", "w+"); fopen("COM1", "r+"); Consigo facilmente escrever na mesma, mas quando uso algum comando de leitura (fread($fp); ou fgets($fp); ) a mesma trava, também tentei limitar o tamanho da leitura (fread($fp, 1024); ou fgets($fp, 1024); ) mas sem sucesso também... Se alguém tiver uma solução com CMD também ajudaria já que posso executar por comando "exec" do PHP. Nos tutoriais que vejo na internet, muitos que tinham esse problema, conseguiram no Linux, pois estavam relacionados a permissão de usuários, já no Windows não achei nada sobre... E sim, sei que muitos vão indicar que se use Delphi, C#, Java e etc... mas preciso mesmo que seja em PHP ou em qualquer linha de comando...
  12. Ainda estou na mesma, até tive uma evolução no referente as ferramentas no PHP, mas estou tendo muitos problemas por ser iniciante em XML. Consigo ver o status da Sefaz, consultar NFC-e. Mas transmitir, estou embananado... Você pode me ajudar? Sei que precisa assinar um trecho do xml (não sei qual) . segue uma tentativa minha de assinar e gerar o digval: <?php $dados_xml='conteudo da xml'; $signature; $pkeyid = openssl_pkey_get_private(file_get_contents('certificado.pem')); $keyData = openssl_pkey_get_details($pkeyid); // then pass the $output to openssl_sign openssl_sign($dados_xml, $signature, $pkeyid); openssl_free_key($pkeyid); echo "<br/>"; echo "<br/>"; //Exibe a assinatuda do documento echo base64_encode($signature); echo "<br/>"; echo "<br/>"; //Exibe o digval (ou tenta...) $base64 = base64_encode(hash("sha1", $dados_xml, true)); echo $base64; //----------------------//---------------------- ?> vc teria algum exemplo ou sabe o erro desse código?
  13. Olá a todos, atualmente estou quebrando a cabeça com 3 campos da geração do XML de NFCE/NFE, são eles: <SignatureValue> , <DigestValue> e <X509Certificate>, como faço para gerar esses 3 campos? Procurei na internet, mas não achei nada que me ajude, gostaria de fazer 100% com php e de preferência manualmente (sem a utilização de classes prontas na qual é difícil de entender o código), sei que aqui o ponto forte são outras linguagens, mas acredito que a lógica de programação já ajudaria bastante. Já tenho o certificado em PFX, e já gerei um certificado do tipo PEM. OBS 1: não precisam explicar ou mandar códigos de como inserir o conteúdo gerado nas tags <SignatureValue> e <X509Certificate>. OBS 2: O campo <DigestValue> notei em alguns fóruns que é um retorno da Sefaz, é correto isso?
×
×
  • 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...