Skip to content

Instantly share code, notes, and snippets.

@sr2ds
Created February 16, 2016 20:24
Show Gist options
  • Save sr2ds/9456313c433169b9858a to your computer and use it in GitHub Desktop.
Save sr2ds/9456313c433169b9858a to your computer and use it in GitHub Desktop.
Script de Integração a Pagamentos Recorrentes com PagSeguro
<?php
Class pagSeguro {
public function pay(){
$url = 'https://ws.sandbox.pagseguro.uol.com.br/v2/pre-approvals/request';
$data['email'] = 'SEUEMAIL';
$data['token'] = 'SEUTOKEN';
$data['currency'] = 'BRL';
$data['preApprovalCharge'] = 'auto';
$data['preApprovalName'] = 'Assinatura';
$data['preApprovalAmountPerPayment'] = '79.00';
$data['preApprovalPeriod'] = 'Monthly';
$data['preApprovalFinalDate'] = '2017-01-21T00:00:000-03:00';
$data['preApprovalMaxTotalAmount'] = '1200.00';
$data['reference'] = 'REF1234';
$data['senderName'] = 'Jose Comprador';
$data['senderAreaCode'] = '11';
$data['senderPhone'] = '56273440';
$data['senderEmail'] = 'EMAILCOMPRADOR';
$data['redirectURL'] = 'LINKDEREDIRECT';
$data = http_build_query($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$xml= curl_exec($curl);
if($xml == 'Unauthorized'){
//Insira seu código de prevenção a erros
//header('Location: erro.php?tipo=autenticacao');
echo 'erro';
exit;//Mantenha essa linha
}
curl_close($curl);
$xml= simplexml_load_string($xml);
if(count($xml -> error) > 0){
//Insira seu código de tratamento de erro, talvez seja útil enviar os códigos de erros.
//header('Location: erro.php?tipo=dadosInvalidos');
print_r($xml);
echo 'dados invalidos';
exit;
}
header('Location: https://sandbox.pagseguro.uol.com.br/v2/pre-approvals/request.html?code=' . $xml -> code);
}
}
$ps = new pagSeguro();
echo $ps->pay();
?>
@henriquesoaresw
Copy link

@henriquesoaresw
Copy link

@henriquesoaresw
Copy link

@henriquesoaresw
Copy link

@LordBoss7
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment