Created
June 5, 2013 13:48
-
-
Save anonymous/5713995 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// arquivo: recarga.php 2011-05-19 18:37 | |
// por: Giancarlo Gil Ottaviani Raduan - [email protected] / | |
http://www.raduan.net | |
// saudações aos colegas da Lista PHP ([email protected]) | |
// copie, altere, mude, mas por favor, deixe os créditos acima :) | |
if ( $_POST ) { | |
//ambiente de producao | |
$numero = 'coloque aqui seu numero de estabelecimento'; // | |
estabelecimento oficial | |
$numero = '1006993069'; // estabelecimento testes | |
$chave = 'coloque aqui sua chave de acesso'; // chave oficial | |
$chave = | |
'25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3'; // | |
chave teste | |
$url = | |
'https://ecommerce.cbmp.com.br/servicos/ecommwsec.do'; // url | |
producao | |
$url = | |
'https://qasecommerce.cielo.com.br/servicos/ecommwsec.do'; // url | |
homologacao | |
$ccnome = $_POST['ccnome']; | |
$ccnum = $_POST['ccnum']; | |
$ccaval = $_POST['ccaval']; | |
$ccmval = $_POST['ccmval']; | |
$ccccv = $_POST['ccccv']; | |
$nome = $_POST['nome']; | |
$valor = $_POST['valor']; | |
$bandeira = $_POST['bandeira']; | |
$data = strftime("%FT%T"); | |
$numpedido = time(); | |
$id = md5(date("YmdHisu")); | |
$valor = str_replace(array(',', '.'), '', $valor); | |
$id = md5(date("YmdHisu")); | |
$string = <<<XML | |
<?xml version="1.0" encoding="ISO-8859-1"?> | |
<requisicao-tid id="$id" versao="1.1.0"> | |
<dados-ec> | |
<numero>$numero</numero> | |
<chave>$chave</chave> | |
</dados-ec> | |
<forma-pagamento> | |
<bandeira>$bandeira</bandeira> | |
<produto>1</produto> | |
<parcelas>1</parcelas> | |
</forma-pagamento> | |
</requisicao-tid> | |
XML; | |
flush(); | |
$ch = curl_init(); | |
flush(); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, 'mensagem=' . $string); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |
curl_setopt($ch, CURLOPT_FAILONERROR, true); | |
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); | |
curl_setopt($ch, CURLOPT_TIMEOUT, 40); | |
$string = curl_exec($ch); | |
if ( curl_error($ch) ) { echo "x01 - " . curl_error($ch); } | |
curl_close($ch); | |
$xml = @simplexml_load_string($string); | |
flush(); | |
if ( $xml->tid ) { | |
$tid = $xml->tid; | |
$id = md5(date("YmdHisu")); | |
$string2 = <<<XML | |
<?xml version="1.0" encoding="ISO-8859-1"?> | |
<requisicao-autorizacao-portador id="$id" versao="1.1.0"> | |
<tid>$tid</tid> | |
<dados-ec> | |
<numero>$numero</numero> | |
<chave>$chave</chave> | |
</dados-ec> | |
<dados-cartao> | |
<numero>$ccnum</numero> | |
<validade>{$ccaval}{$ccmval}</validade> | |
<indicador>1</indicador> | |
<codigo-seguranca>{$ccccv}</codigo-seguranca> | |
</dados-cartao> | |
<dados-pedido> | |
<numero>$numpedido</numero> | |
<valor>$valor</valor> | |
<moeda>986</moeda> | |
<data-hora>$data</data-hora> | |
<idioma>PT</idioma> | |
</dados-pedido> | |
<forma-pagamento> | |
<bandeira>$bandeira</bandeira> | |
<produto>1</produto> | |
<parcelas>1</parcelas> | |
</forma-pagamento> | |
<capturar-automaticamente>false</capturar-automaticamente> | |
</requisicao-autorizacao-portador> | |
XML; | |
$ch = curl_init(); | |
flush(); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, 'mensagem=' . $string2); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |
curl_setopt($ch, CURLOPT_FAILONERROR, true); | |
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); | |
curl_setopt($ch, CURLOPT_TIMEOUT, 40); | |
$xml2 = curl_exec($ch); | |
$xml2 = @simplexml_load_string($xml2); | |
curl_close($ch); | |
flush(); | |
$id = md5(date("YmdHisu")); | |
$string3 = <<<XML | |
<?xml version="1.0" encoding="ISO-8859-1"?> | |
<requisicao-autorizacao-tid id="$id" versao="1.1.0"> | |
<tid>$tid</tid> | |
<dados-ec> | |
<numero>$numero</numero> | |
<chave>$chave</chave> | |
</dados-ec> | |
</requisicao-captura> | |
XML; | |
$ch = curl_init(); | |
flush(); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, 'mensagem=' . $string3); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |
curl_setopt($ch, CURLOPT_FAILONERROR, true); | |
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); | |
curl_setopt($ch, CURLOPT_TIMEOUT, 40); | |
$xml3 = curl_exec($ch); | |
$xml3 = @simplexml_load_string($xml3); | |
curl_close($ch); | |
flush(); | |
header("Location: https://www.url-de-confirmacao-do-seu-site/"); | |
} | |
else { | |
echo "Falha na comunicação com os servidores da CIELO"; | |
} | |
} | |
else { | |
echo "não autorizado"; | |
} | |
?> | |
<form action="recarga.php" method="post"> | |
<table border="0" cellpadding="3" cellspacing="0"> | |
<tr> | |
<td>Pagar com</td> | |
<td><select name="bandeira"><option | |
value="visa">Visa</option><option | |
value="mastercard">MasterCard</option><option | |
value="elo">Elo</option></select></td> | |
</tr> | |
<tr> | |
<td>Número do Cartão</td> | |
<td><input type="text" name="ccnum" id="ccnum" maxlength="16"></td> | |
</tr> | |
<tr> | |
<td>Nome do Portador</td> | |
<td><input type="text" name="ccnome"></td> | |
</tr> | |
<tr> | |
<td>Vencimento</td> | |
<td> | |
<select name="ccmval"> | |
<option value="01">Janeiro</option> | |
<option value="02">Fevereiro</option> | |
<option value="03">Março</option> | |
<option value="04">Abril</option> | |
<option value="05">Maio</option> | |
<option value="06">Junho</option> | |
<option value="07">Julho</option> | |
<option value="08">Agosto</option> | |
<option value="09">Setembro</option> | |
<option value="10">Outubro</option> | |
<option value="11">Novembro</option> | |
<option value="12">Dezembro</option> | |
</select> | |
<select name="ccaval"> | |
<option value="2011">2011</option> | |
<option value="2012">2012</option> | |
<option value="2013">2013</option> | |
<option value="2014">2014</option> | |
<option value="2015">2015</option> | |
<option value="2016">2016</option> | |
<option value="2017">2017</option> | |
<option value="2018">2018</option> | |
<option value="2019">2019</option> | |
<option value="2020">2020</option> | |
<option value="2021">2021</option> | |
</select> | |
</td> | |
</tr> | |
<tr> | |
<td>Código de Segurança</td> | |
<td><input type="text" name="ccccv" id="ccccv" size="3" | |
maxlength="3"></td> | |
</tr> | |
<tr> | |
<td>CPF / CNPJ</td> | |
<td><input type="text" name="nome"> </td> | |
</tr> | |
<tr> | |
<td>Valor</td> | |
<td><input type="text" name="valor" id="valor" value="1,00"></td> | |
</tr> | |
<tr> | |
<td></td> | |
<td><input type="submit" value="recarregar" /></td> | |
</tr> | |
</table> | |
</form> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment