Ir para conteúdo

Giovani Silva

Members
  • Total de itens

    17
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre 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

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

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

    Ajuda com CSS

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

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.