Jump to content

Fernando Rafael

Membros
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Fernando Rafael

  • Rank
    Novato

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 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()
  2. 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...
  3. 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?
  4. 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?
×
×
  • Create New...