Hewitt 14 Denunciar post Postado Outubro 15, 2015 Galera, boa tarde. Implementando ainda o pagamento via MoIP (estou ainda estudando a api sem ser a transparente), tenho o seguinte: <?php include_once "moip/autoload.inc.php"; $moip = new Moip(); $moip->setEnvironment('test'); $moip->setCredential(array( 'key' => 'MINHA_KEY', 'token' => 'MEU_TOKEN' )); $moip->setUniqueID(false); $moip->setValue($valor_mensal * $num_emp); $moip->setReason('Pagamento de Mensalidade'); $moip->setPayer(array('name' => $nome_completo, 'email' => $email, 'payerId' => $id_logado, 'billingAddress' => array('address' => $end, 'number' => '' , 'complement' => 'z' , 'city' => $cidade, 'neighborhood' => $bairro, 'state' => $estado, 'country' => 'BRA', 'zipCode' => $cep, 'phone' => $tel))); $moip->validate('Identification'); $moip->send(); //print_r($moip->getAnswer()); $response = $moip->getAnswer()->payment_url; ?> Toda vez que abro a página, ele executa esse comando e gera o link de pagamento, que recebo nesse botão: <form method="post" action="<? echo $response ?>"> <input type="submit" name="pagar" value="Gerar Pagamento" class="btn btn-success btn-group-lg" /> </form> Funciona perfeitamente. Mas, se eu transformar o comando PHP em função: <?php include_once "moip/autoload.inc.php"; function gerar_pag() { ... } ?> Como faço para o botão executar a função? Compartilhar este post Link para o post Compartilhar em outros sites
LandersonAlmeida 31 Denunciar post Postado Outubro 15, 2015 if(isset($_POST['pagar'])): gerar_pag(); endif; Ou: $Post = filter_input(INPUT_POST, 'pagar'); if($Post): gerar_pag(); endif; Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Outubro 15, 2015 Você terá que fazer a requisição com ajax. Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Outubro 15, 2015 ESerra, eu vi uns exemplos, mas não queria usar Ajax, só em último caso. Landerson, fiz assim mas não está redirecionando: <?php include_once "moip/autoload.inc.php"; function gerar_pag(){ $moip = new Moip(); $moip->setEnvironment('test'); $moip->setCredential(array( 'key' => 'MINHA_KEY', 'token' => 'MEU_TOKEN' )); $moip->setUniqueID(false); $moip->setValue($valor_mensal * $num_emp); $moip->setReason('Pagamento de Mensalidade'); $moip->setPayer(array('name' => $nome_completo, 'email' => $email, 'payerId' => $id_logado, 'billingAddress' => array('address' => $end, 'number' => '' , 'complement' => '' , 'city' => $cidade, 'neighborhood' => $bairro, 'state' => $estado, 'country' => 'BRA', 'zipCode' => $cep, 'phone' => $tel))); $moip->validate('Identification'); $moip->send(); //print_r($moip->getAnswer()); $response = $moip->getAnswer()->payment_url; header("Location:$response"); } ?> <? $Post = filter_input(INPUT_POST, 'pagar'); if($Post): gerar_pag(); endif; ?> <form method="post"> <input type="submit" name="pagar" value="Gerar Pagamento" class="btn btn-success btn-group-lg" /> </form> Compartilhar este post Link para o post Compartilhar em outros sites
LandersonAlmeida 31 Denunciar post Postado Outubro 15, 2015 Só pra constar não precisa do: ?> <? Mude seu form: <form action="" method="post"> <input type="submit" name="pagar" value="Gerar Pagamento" class="btn btn-success btn-group-lg" /> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Outubro 15, 2015 Landerson, também não funcionou. Ele não redireciona. Compartilhar este post Link para o post Compartilhar em outros sites
Gremendes 2 Denunciar post Postado Outubro 15, 2015 Talvez isso possa ajudar: <form method="post" action="submit.php"> <input name="pagar" type="submit" value="Gerar Pagamento" class="btn btn-success btn-group-lg"/> </form> PHP: <?php if(isset($_POST['pagar']){ gerar_pag() }else{ outraFuncao(); } ?> Talvez você precise editar um pouco, mas acredito que seja essa a lógica :ph34r: Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Outubro 15, 2015 Descobri porque não estava redirecionando. Está dando esse erro: Error: The following data required were not informed: [name] [email] [payerId] [address] [neighborhood] [city] [state] [zipCode] [phone] . Quando ele se torna uma função, não consigo exibir os dados do select? Compartilhar este post Link para o post Compartilhar em outros sites
Gremendes 2 Denunciar post Postado Outubro 15, 2015 Ele esta chamando a função sem passar os dados preenchidos. Experimente editar sua função pra pegar o valor preenchido nos inputs Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Outubro 15, 2015 Os valores já estão nas variáveis. Vou dar uma pesquisada! Consegui! =) <?php include_once "moip/autoload.inc.php"; function gerar_pag(){ global $nome_completo, $email, $valor_mensal, $num_emp, $id_logado, $end, $cidade, $bairro, $estado, $cep, $tel; Obrigado pela ajuda Gremendes, ESerra e Landerson! Compartilhar este post Link para o post Compartilhar em outros sites