Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hewitt

Função PHP no botão/submit!

Recommended Posts

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

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

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

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

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

×

Informação importante

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