Jump to content

Giovani Silva

Members
  • Content count

    19
  • Joined

  • Last visited

Everything posted by Giovani Silva

  1. Olá, usando o cUrl tenho obtido no retorno uma string conforme mostrado pelo vardump: string(3236) "21SCJEYPH4M2018-10-09T11:25:07.810-03:0063E12018-10-09T11:25:05-03:00112018-10-01T00:00:00-03:00http://e-gov.betha.com.br/e-nota/visualizarnotaeletronica?link=1539095107817211162506638065523770518713302201024.500.000.000.000.002024.52.00000001036319400{[[Descricao=Anúncio na Internet][ItemServico=0103][Quantidade=1][ValorUnitario=16][ValorServico=16][ValorBaseCalculo=16][Aliquota=2][Deducoes=0][DescontoCondicionado=0][DescontoIncondicionado=0]][[Descricao=Anúncio 2][ItemServico=0103][Quantidade=1][ValorUnitario=8.5][ValorServico=8.5][ValorBaseCalculo=8.5][Aliquota=2][Deducoes=0][DescontoCondicionado=0][DescontoIncondicionado=0]]}43215012.21157181640001208586GI SO DA SA PUEVIZAmbiente de testes não requer endereço0SC8888888800114093040Nome aAv S Ped8São Frano4321501RS955600005198225644dids@yahoo.com.br0SCfalse" Essa string possui o seguinte código fonte <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Header></env:Header> <env:Body> <ns2:ConsultarLoteRpsEnvioResponse xmlns:ns2="http://www.betha.com.br/e-nota-contribuinte-ws" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#"> <ConsultarLoteRpsResposta> <ListaNfse> <ComplNfse> <Nfse> <InfNfse> <Numero>21</Numero> <CodigoVerificacao>SC5EYOH4M</CodigoVerificacao> <DataEmissao>2018-10-09T11:25:07.810-03:00</DataEmissao> <IdentificacaoRps> <Numero>63</Numero> <Serie>E</Serie> <Tipo>1</Tipo> </IdentificacaoRps> <DataEmissaoRps>2018-10-09T11:25:05-03:00</DataEmissaoRps> <NaturezaOperacao>1</NaturezaOperacao> <OptanteSimplesNacional>1</OptanteSimplesNacional> <Competencia>2018-10-01T00:00:00-03:00</Competencia> <OutrasInformacoes>http://e-gov.betha.com.br/e-nota/visualizarnotaeletronica?link=153909510781721791625066100380655237705187133022010</OutrasInformacoes> <Servico> <Valores> <ValorServicos>24.5</ValorServicos><ValorDeducoes>0</ValorDeducoes><ValorPis>0.00</ValorPis><ValorCofins>0.00</ValorCofins><ValorInss>0.00</ValorInss><ValorIr>0.00</ValorIr><IssRetido>2</IssRetido><ValorIss>0</ValorIss><BaseCalculo>24.5</BaseCalculo><Aliquota>2.0000</Aliquota><DescontoCondicionado>0</DescontoCondicionado><DescontoIncondicionado>0</DescontoIncondicionado> </Valores> <ItemListaServico>0103</ItemListaServico> <CodigoCnae>6319400</CodigoCnae> <Discriminacao>{[[Descricao=Anúncio na Internet][ItemServico=0103][Quantidade=1][ValorUnitario=16][ValorServico=16][ValorBaseCalculo=16][Aliquota=2][Deducoes=0][DescontoCondicionado=0][DescontoIncondicionado=0]][[Descricao=Anúncio 2][ItemServico=0103][Quantidade=1][ValorUnitario=8.5][ValorServico=8.5][ValorBaseCalculo=8.5][Aliquota=2][Deducoes=0][DescontoCondicionado=0][DescontoIncondicionado=0]]}</Discriminacao><CodigoMunicipio>4368501</CodigoMunicipio><TaxaDiversa/></Servico><ValorCredito>2.21</ValorCredito><PrestadorServico><IdentificacaoPrestador><Cnpj>15718145500120</Cnpj><InscricaoMunicipal>8666</InscricaoMunicipal></IdentificacaoPrestador><RazaoSocial>G PU</RazaoSocial><NomeFantasia>VZ</NomeFantasia><Endereco><Endereco>Ambiente de testes não requer endereço</Endereco><CodigoMunicipio>0</CodigoMunicipio><Uf>SC</Uf><Cep>88888888</Cep></Endereco><Contato/></PrestadorServico><TomadorServico><IdentificacaoTomador><CpfCnpj><Cpf>0011405440</Cpf></CpfCnpj></IdentificacaoTomador><RazaoSocial>Gio</RazaoSocial><Endereco><Endereco>Av Pe</Endereco><Numero>1338</Numero><Bairro>São F</Bairro><CodigoMunicipio>4354501</CodigoMunicipio><Uf>RS</Uf><Cep>95560000</Cep></Endereco><Contato><Telefone>51982263344</Telefone><Email>di2ss@yahoo.com.br</Email></Contato></TomadorServico><IntermediarioServico/><OrgaoGerador><CodigoMunicipio>0</CodigoMunicipio><Uf>SC</Uf></OrgaoGerador><ConstrucaoCivil/></InfNfse></Nfse><NfseCancelamento><Confirmacao><Pedido><InfPedidoCancelamento/><ns3:Signature/></Pedido><InfConfirmacaoCancelamento><Sucesso>false</Sucesso></InfConfirmacaoCancelamento></Confirmacao></NfseCancelamento><NfseSubstituicao><SubstituicaoNfse/></NfseSubstituicao></ComplNfse></ListaNfse><ListaMensagemRetorno/></ConsultarLoteRpsResposta></ns2:ConsultarLoteRpsEnvioResponse></env:Body></env:Envelope> Preciso pegar com PHP as informações contidas em: <InfNfse> <Numero>21</Numero> <CodigoVerificacao>SCJEYOH4M</CodigoVerificacao> <DataEmissao>2018-10-09T11:25:07.810-03:00</DataEmissao> <IdentificacaoRps> <Numero>63</Numero> e <OutrasInformacoes>http://e-gov.betha.com.br/e-nota/visualizarnotaeletronica?link=15390 Tentei usando simplexml_load_string, DOMDocument e outras formas sem sucesso. Acho que não usei corretamente as funções acima. Desde já agradeço a ajuda.
  2. Giovani Silva

    Pegar dados de Tags em uma string XML usando PHP

    Consegui da forma abaixo $dom = new DOMDocument; $dom->loadXML($string_xml); $cod_ver = $dom->getElementsByTagName('CodigoVerificacao'); $nfs_num = $dom->getElementsByTagName('Numero'); $lk=$dom->getElementsByTagName('OutrasInformacoes'); $items = array(); foreach ($cod_ver as $codigo_ver) { $cod_verificacao = $codigo_ver->nodeValue; } $i=0; foreach ($nfs_num as $nfs_numero) { if($i==0){ $NFSe_num=$nfs_numero->nodeValue; } $i++; } foreach ($lk as $lk_ok) { $link=$lk_ok->nodeValue; } echo "<br>Link ".$link."<br>NFSe ".$NFSe_num."<br>Cod. Verificação ".$cod_verificacao; Se souberem de uma maneira mais simples melhor
  3. Boa noite, estou tentando enviar com PHP SOAP o XML de um lote RPS assinado para o Web Service da Betha também conhecido como Fly e-nota. No entanto, não tenho tido nenhum retorno quanto a se deu algum erro ou algo do tipo. Documentação https://e-gov.betha.com.br/e-nota-test/ambienteteste.faces Ambiente Teste Webservice https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps?wsdl https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/consultarLoteRps?wsdl Layout https://e-gov.betha.com.br/e-nota/manuais/layout.pdf Modelo Conceitual http://www.abrasf.org.br/arquivos/files/NFSE-NACIONAL_Modelo_Conceitual versao 2-02.pdf Manual de Integração ABRASF http://www.abrasf.org.br/arquivos/files/NFSE-NACIONAL_Manual_De_Integracao versao 2-02.pdf Tem uma opção na área administrativa Fly e-nota para solicitar a prefeitura autorização para impressão de RPS tanto manual como eletrônica. Não sei se isso é obrigatório ou se é necessário para o meu objetivo. Parte do código para o envio: ------------------------------ function transmiteRps($xmlAssinado,$certificadoPem,$senha){ $wsdl = 'https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps?wsdl'; $endpoint = 'https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps'; $certificate = $certificadoPem; $password = $senha; $options = array( 'location' => $endpoint, 'keep_alive' => true, 'trace' => true, 'local_cert' => $certificate, 'passphrase' => $password, 'cache_wsdl' => WSDL_CACHE_NONE ); try { $client = new SoapClient($wsdl, $options); $function = 'EnviarLoteRpsEnvio'; $arguments = ['EnviarLoteRpsEnvio' => ['xml'=>$xmlAssinado]]; $options = []; $result = $client -> __soapCall($function, $arguments, $options); } catch(Exception $e){ $result = false; } if($result!==false){ return xml2array($result->return); }else{ return false; } }//transmiteRps ---------------------------------------------------------- function xml2array($xmlstring){ $xml = simplexml_load_string($xmlstring); $json = json_encode($xml); $array = json_decode($json, TRUE); return $array; } ----------------------------------------------- function consultaRps($cnpj, $inscricao, $protocolo, $certificadoPem, $senha){ $wsdl = 'https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/consultarLoteRps?wsdl'; $endpoint = 'https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/consultarLoteRps'; $certificate = $certificadoPem; $password = $senha; $xml = '<?xml version="1.0" encoding="utf-8"?> <ConsultarLoteRpsEnvio xmlns="http://www.betha.com.br/e-nota-contribuinte-test-ws"> <Prestador> <CpfCnpj> <Cnpj>'.$cnpj.'</Cnpj> </CpfCnpj> <InscricaoMunicipal>'.$inscricao.'</InscricaoMunicipal> </Prestador> <Protocolo>'.$protocolo.'</Protocolo> </ConsultarLoteRpsEnvio>'; $options = array( 'location' => $endpoint, 'keep_alive' => true, 'trace' => true, 'local_cert' => $certificate, 'passphrase' => $password, 'cache_wsdl' => WSDL_CACHE_NONE ); try { $client = new SoapClient($wsdl, $options); $function = 'consultarLoteRps'; $arguments = ['consultarLoteRps' => ['xml'=>$xml]]; $options = []; $result = $client -> __soapCall($function, $arguments, $options); } catch(Exception $e){ $result = false; } if($result!==false){ return $result->return; }else{ return false; } } //consultaRps -------------------------------- $certificadoPem=dirname(__FILE__).'/certificado.pem'; $senha='xxxxx'; //senha do certificado ---------------------------------- //assina RPS $xmlAssinado=assinaRps(dirname(__FILE__).'/only_rps.xml'); //usei para assinar só a RPS file_put_contents(dirname(__FILE__).'/rps_temp/rps1.xml','<?xml version="1.0" encoding="utf-8"?> <EnviarLoteRpsEnvio xmlns="https://e-gov.betha.com.br/e-nota-contribuinte-test-ws"><LoteRps Id="LOTE1"><NumeroLote>1</NumeroLote><Cnpj>xxxxxxxxxxxxxx</Cnpj><InscricaoMunicipal>xxxx</InscricaoMunicipal><QuantidadeRps>1</QuantidadeRps> <ListaRps>'.str_replace('<?xml version="1.0" encoding="utf-8"?>','',$xmlAssinado).'</ListaRps></LoteRps></EnviarLoteRpsEnvio>'); $_SESSION['nome_uri']='LOTE1'; $xmlAssinado=assinaRps(dirname(__FILE__).'/rps_temp/rps1.xml'); //usei para assinar o Lote RPS $resultado=transmiteRps($xmlAssinado, $certificadoPem, $senha); if(!empty($resultado["Protocolo"])){//se tem protocolo e sucesso //$resultado["NumeroLote"] //$resultado["Protocolo"] //consulta lote e pega nfse $nfseResposta = consultaRps('xxxxxxxxxxxxx', //cnpj 'xxxx', //inscrição municipal $resultado["Protocolo"], $certificadoPem, $senha); if($nfseResposta!==false){ echo '<textarea cols="120" rows="70">'; echo $nfseResposta; echo '</textarea>'; }else{ echo 'Erro ao consultar RPS'; } }else{ echo "erro no envio"; } Vídeo Tutorial do código NFSe acima porém para outro webservice que não é da Betha. https://www.youtube.com/watch?v=v1rByVX1_FY Desde já agradeço a atenção e colaboração dos colegas. Funcionando postarei aqui a solução com o código completo para quem precisar.
  4. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Boa noite, em nossos testes não lembro se tentamos colocar um ID na tag Rps e sim na InfRps. Conforme havia comentado na solução aqui neste post, é necessário deixar o force_uri como true mesmo que aparentemente não apareça na estrutura do seu xml ou que fique em branco. Funciona dessa maneira mesmo. Agora se desativar o force_uri da erro na assinatura. Então mesmo que não apareça o uri na assinatura de seu xml, ele fez alguma coisa nela tornando-a válida.
  5. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Mais um detalhe Josemir, na função assinaRps não sei se você estava enviando um arquivo com o XML. Caso era um arquivo, na função teria a opção $doc -> load($arquivo) Nessa caso tem que substituir por $doc -> loadXML($arquivo) para funcionar com a string $rps="<Rps><InfRps Id="rps1"> ... </InfRps></Rps";
  6. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    $rps="<Rps><InfRps Id="rps1"> ... </InfRps></Rps"; $RpsAssinado=assinaRps($rps,$chave_publica); $Lote='<e:EnviarLoteRpsEnvio xmlns:e="http://www.betha.com.br/e-nota-contribuinte-ws"><LoteRps Id="LOTE1'"><NumeroLote>1</NumeroLote><Cnpj>xxxxxxx</Cnpj><InscricaoMunicipal>xxxx</InscricaoMunicipal><QuantidadeRps>1</QuantidadeRps><ListaRps>'.$RpsAssinado.'</ListaRps></LoteRps></e:EnviarLoteRpsEnvio>'; $LoteAssinado=assinaRps($Lote , $chave_publica);
  7. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Boa tarde Josemir Costa, você conseguiu resolver sua questão? Chegou a olhar os links que mencionei? Biblioteca para assinar o XML https://github.com/robrichards/xmlseclibs Vídeo bem útil do Bill Barsch da Geranet https://www.youtube.com/watch?v=v1rByVX1_FY Para assinar individual, colocamos a primeira parte do XML em uma string e então chamamos a função de assinar enviando o código. Após pegamos o retorno e concatenamos com o restante do XML de deveria estar antes e após a primeira string já assinada. Daí chamamos novamente a função de assinar passando a segunda string (XML completo) a ser assinada. Não sei se ficou claro. O único cuidado que tem que ter é não modificar nada no primeiro bloco após assinado, pois remover espaços após a assinatura por exemplo, a invalidaria. Att. Giovani Silva Virthuz Anunciante Virtual
  8. Giovani Silva

    Ajuda com CSS

    Boa noite Gustavo, Já tentou definir um height para o seu input?
  9. Encontrei o código abaixo, porém, precisaria só da parte de vincular um novo cliente há uma assinatura já existente. Então, seria só a segunda parte dele, creio eu. Mas não encontrei nele as informações mencionadas no meu primeiro comentário com o Json. Deveria ter uma variável para informar o código do plano ao qual a nova assinatura será vinculada. Não sei se iria na variável $data da public function join (array $data) namespace Site\PagSeguro; use GuzzleHttp\Client; use PagSeguro\Configuration\Configure; class PagSeguroPlan { public function create(){ $preApproval = new \PagSeguro\Domains\Requests\PreApproval(); $preApproval->setCurrency("BRL"); $preApproval->setReference("plan_business"); $preApproval->setPreApproval()->setCharge('auto'); $preApproval->setPreApproval()->setName("Seguro contra roubo do Notebook Prata77"); $preApproval->setPreApproval()->setDetails("Todo dia 30 será cobrado o valor de R100,00 referente ao seguro contra roubo do Notebook Prata."); $preApproval->setPreApproval()->setAmountPerPayment('100.00'); $preApproval->setPreApproval()->setPeriod('Monthly'); $preApproval->setPreApproval()->setMaxTotalAmount('2400.00'); $preApproval->setRedirectUrl("http://www.lojateste.com.br/redirect"); $preApproval->setReviewUrl("http://www.lojateste.com.br/review"); try { $response = $preApproval->register( \PagSeguro\Configuration\Configure::getAccountCredentials() ); echo "<h2>Criando requisição de assinatura</h2>" . "<p>URL da assinatura: <strong>$response</strong></p>" . "<p><a title=\"URL da assinatura\" href=\"$response\" target=\_blank\">Ir para URL da assinatura.</a></p>"; } catch (\Exception $e) { dd($e->getMessage()); } } public function join(array $data){ $credentials = Configure::getAccountCredentials(); $env = Configure::getEnvironment(); $client = new Client(); $method = 'POST'; $url = $env->getEnvironment() == 'production' ? 'https://ws.pagseguro.uol.com.br/pre-approvals' : 'https://ws.sandbox.pagseguro.uol.com.br/pre-approvals'; $response = $client->request($method,$url, [ 'query' => [ 'email'=>$credentials->getEmail(), 'token'=>$credentials->getToken(), ], 'headers' => [ 'Content-Type' => 'application/json;charset=ISO-8859-1', 'Accept' => 'application/vnd.pagseguro.com.br.v3+json;charset=ISO-8859-1' ], 'json' => $data ]); return json_decode($response->getBody()->getContents()); } }
  10. Boa tarde, estou integrando pagamento recorrente do pagseguro em PHP. No entanto consigo criar planos e adicionar uma assinatura (cliente) ao plano. No entanto não estou conseguindo inserir vários clientes (assinaturas) ao mesmo plano. No fórum deles tem várias pessoas com o mesmo problema, mas não tem nenhuma solução até então. Aparentemente encontrei uma solução em http://download.uol.com.br/pagseguro/docs/pagamento-recorrente-transparente.pdf Porém usa Json o que não é minha praia. Então a questão é o que fazer com tal informação usando php. Como enviar os dados. Segue abaixo algumas informações importantes sobre o que tem que ser feito: Adesão a pagamento recorrente Permite aderir um cliente a um plano para que este seja cobrado recorrentemente conforme o plano informado. URL: POST https://ws.pagseguro.uol.com.br/pre-approvals?{authenticationParameters} Formatos disponíveis: JSON Parâmetros JSON No código abaixo, 'plan' seria o código do pano já criado ao qual iria receber a adesão de um novo assinante. { "plan":"89A1108EFEFE7A8EE4065FAD7872DE0D", "reference":"ID-CND", "sender":{ "name":"Comprador", "email":"adesao@istambul.com", "ip":"192.168.0.1", "hash":"hash", "phone":{ "areaCode":"11", "number":"988881234" }, "address":{ "street":"Av. Brigadeira Faria Lima", "number":"1384", "complement":"3 andar", "district":"Jd. Paulistano", "city":"São Paulo", "state":"SP", "country":"BRA", "postalCode":"01452002" }, "documents":[ { "type":"CPF", "value":"00000000191" } ] }, "paymentMethod":{ "type":"CREDITCARD", "creditCard":{ "token":"e08d3dccd95b432ba1c1830c3827f359", "holder":{ "name":"Nome", "birthDate":"11/01/1984", "documents":[ { "type":"CPF", "value":"00000000191" } ], "billingAddress":{ "street":"Av. Brigadeiro Faria Lima", "number":"1384", "complement":"3 andar", "district":"Jd. Paulistano", "city":"São Paulo", "state":"SP", "country":"BRA", "postalCode":"01452002" }, "phone":{ "areaCode":"11", "number":"988881234" } } } } } Resposta de Sucesso { "code":"4989E778E4E4315BB4F37F9CAF05D094" //Código da assinatura } To perdidão, se alguém puder der uma luz, agradeço.
  11. Giovani Silva

    erro no date

    Boa noite Dundaki, Você não colocou a data entre aspas Acredito que seja este o seu problema insert into pessoas(id,nome,nascimento,sexo) values (DEFAULT,'JOAO PAULO', '2018-02-25','M');
  12. Giovani Silva

    [Resolvido] Erro de charset=utf-8

    Os dados que você usa para preencher a tabela vem por POST ou Banco de Dados? Nesse caso você pode usar o utf8_encode() ou utf8_decode() Ou pode ser que essa configuração no phpmailer resolva $mail->CharSet = 'UTF-8'; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtp.mydomain.org";
  13. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Agradeço a ajuda do Gabriel Heming e outras fontes sobre o assunto. Para quem precisar assinar e enviar lote RPS para a Betha emitindo assim a NFSe seguem algumas dicas que me ajudaram a resolver o problema: 1º - Ao gerar o XML da RPS, deve-se assinar primeiro a RPS e depois o Lote. 2º - para assinar o XML converte-se o arquivo .pfx do certificado para .pem para assim poder trabalhar com assinatura no servidor PHP Para a conversão basta procurar na internet por "convert pfx to pem" e terá como exemplo https://www.sslshopper.com/ssl-converter.html O meu certificado baixei da Betha e ao converter o arquivo continua contendo tanto a chave privada quanto a publica. Por isso, após a conversão para "pem" deve-se abrir o arquivo com Bloco de Notas, Notepad++ ou outro, Verá vários blocos de código. O primeiro é a chave primaria. Deve-se copiar o segundo bloco que é a chave publica e salvar em um novo arquivo chavepublica.pem Irá precisar dos dois arquivos .pem para a assinatura, o completo e o com apenas a chave pública. Biblioteca para assinar o XML https://github.com/robrichards/xmlseclibs Vídeo bem útil do Bill Barsch da Geranet https://www.youtube.com/watch?v=v1rByVX1_FY Usei apenas a parte para assinar o documento. * Importante: Usar o "force_uri". Não sei se porque usei o certificado da Betha no meu caso o atributo URI não apareceu no XML como no exemplo do vídeo, mas teve efeito na assinatura. Sem essa opção ela não é válida. 3º - Para o envio usei o cURL adicionando o cabeçalho SOAP por ele. Segundo algumas fontes, usando o somente o SOAP pode ocorre de não trazer retorno em caso de erros e ai você não sabe o que fazer. Já com o cURL você recebe sempre as mensagens. Quanto usei só o SOAP tinha erro mas a página ficava em branco, de mogo que eu não sabia o que estava acontecendo. Agradeço ao POST do Luiz Paulo Franz aqui do fórum sobre o envio por cURL. * Tive que fazer algumas modificações no código dele pois tava dando erro de assinatura inválida. Tirei toda a parte do código dele que fazia alterações no XML, onde ele usava str_replace Motivo: após você assinar um documento, ele não deve ser alterado, pois assim a assinatura se tornaria inválida. Observações finais: Fazer os testes no ambiente de homologação. cuidar de acentos ou caracteres especiais no XML. Também é bom remover os espaços em branco e quebras de linha antes de se assinar o documento. Nunca repetir o número do lote e usar em sequência. Espero que estas informações possam ajudar a outros. Um forte abraço a todos Giovani Silva Virthuz Anunciante Virtual
  14. Giovani Silva

    Assinatura digital com PHP

    Boa tarde Batata004, dá uma olhada na biblioteca xmlseclibs do RobRichards. https://github.com/robrichards/xmlseclibs Eu resolvi um problema similar de assinatura com ela e com o vídeo do Bill Barsch da Geranet
  15. Giovani Silva

    Parar o alert, não deixar cadastrar depois de OK

    Boa tarde Rangel, você está chamando a função no onSubmit ? Se não tente usá-la assim <form onSubmit="verifica()"> E na função ao dar erro coloca um return false alert('Erro'); return false; Acredito que isso possa ajudar. Outra ideia seria ao invés de usar um campo txt usar um select com options. A não ser que tenha muitas opções.
  16. Giovani Silva

    Como descobrir se o visitante deu refresh na página?

    Boa tarde Matheus, já pensou em enviar o formulário sem refresh? Pois no envio padrão quando ele recarrega a página vem a pergunta se ele deseja enviar o formulário novamente. Se usar Jquey para enviar sem refresh isso não ocorrerá. O formulário não será enviado novamente ao dar F5 e não vira a mensagem de erro. Veja se isso pode lhe ajudar http://wbruno.com.br/ajax/enviar-formulario-para-php-sem-refresh-jquery-ajax/ http://rafaelcouto.com.br/envio-de-formulario-sem-refresh-com-jquery-php/
  17. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Oi, tive mais uma dúvida, tenho dois modelos de lote RPS onde um baixei da Betha e outro fornecido por uma empresa de automação que usa o sistema da Betha. No cabeçalho dessa outra empresa tem o "e:" e no na Betha não. Empresa Midia <e:EnviarLoteRpsEnvio xmlns:e="http://www.betha.com.br/e-nota-contribuinte-ws"> Betha <EnviarLoteRpsEnvio xmlns = "http://www.betha.com.br/e-nota-contribuinte-ws"> Esse "e:" ou as vezes já notei outras expressões no lugar, como se chama e para que serve? Faz diferença usar ? ---------------- Outra dúvida Nos exemplos da Betha tem: envioSoapUi.xml que tem o comentário "Quando utilizar, por exemplo, o Soap-UI para envio do XML deve ser utilizada a estrutura abaixo" que teria um cabeçalho <soapenv E tem exemplos sem isso. Na hora de montar a estrutura do XML devo usar isso no meu código php ou não? Outros exemplos que tem: RecepcionarLoteRps.xml RecepcionarLoteRpsSincrono.xml GerarNfse.xml <GerarNfseEnvio xmlns = "http://www.betha.com.br/e-nota-contribuinte-ws"> Qual a diferença do Sincrono e do outro? Qual a melhor opção? E eu estava a usar o RecepcionarLoteRps. Me passaram a informação que gerando e enviando o XML do lote RPS para o Webservice da Betha, o sistema deles gera a DANFE e até envia a NFSe para o e-mail do cliente se o mesmo for informado no XML. Então devo continuar a usar apenas o RecepecionarLoteRps ou também devo usar o GerarNfse? Obrigado mais uma vez
  18. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Obrigado, vou dar uma olhada. Aproveitando, você sabe interpretar o WSDL? https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps?wsdl é que na chamada __soapCall($function, $arguments, $options); Tenho duvida quanto a função e os argumentos usados para o envio dos dados. $function = 'EnviarLoteRpsEnvio'; $arguments = ['EnviarLoteRpsEnvio' => ['xml'=>$xmlAssinado]]; --- Dúvida: EnviarLoteRpsEnvioResponse ou EnviarLoteRpsEnvio em ambos os casos (função e nos argumentos) ? Outra questão: ao usar stdClass na real não estaria criando a mesma estrutura do XML manualmente e salvando em um objeto para enviá-la ao webservice?
  19. Giovani Silva

    PHP NFSe com SOAP envio de XML RPS para Betha Fly-enota

    Bom dia Gabriel, muito obrigado pela dica. Gostei do conceito de criar e enviar o objeto. Vou tentar fazer como você mencionou. Bem, pelo que entendi o mesmo conceito deve ser aplicado a função transmiteRps. Mas a parte que diz no manual que tanto a RPS como o Lote devem ser Assinados, a assinatura também deve ser colocada no objeto da forma que mencionasse? Em nenhuma parte enviarei um arquivo XML do Lote RPS, apenas o objeto? quanto a senha, assinatura,... e outras coisas para ter um minimo de segurança? O certificado eu converti para .pem Nesse caso o processo de assinar o objeto seria o mesmo praticamente que eu havia usado? Só lembrando a parte que receberá o RPS https://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps?wsdl Obs. No caso que fiz eu gravei o XML assinado, mas na hora de enviar não tive o Protocolo para a parte da consulta. Ou seja, algo errado mas também não tive resposta de erro do webservice.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.