Jump to content

Giovani Silva

Members
  • Content count

    19
  • Joined

  • Last visited

Community Reputation

0 Comum

About Giovani Silva

Informações Pessoais

  • Localização
    Torres RS Brasil

Contato

  • Twitter
    @virthuz
  • Facebook
    https://www.facebook.com/virthuz.anunciante.virtual/
  • Site Pessoal
    www.virthuz.com.br

Recent Profile Visitors

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

  1. 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
  2. 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.
  3. 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.
  4. 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";
  5. 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);
  6. 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
  7. Giovani Silva

    Ajuda com CSS

    Boa noite Gustavo, Já tentou definir um height para o seu input?
  8. 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()); } }
  9. 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.
  10. 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');
  11. 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";
  12. 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
  13. 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
  14. 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.
  15. 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/
×

Important Information

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