Código PHP:
<?php
include("../config/config.php");
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
$period = '+1 month';
$email = $_POST['payer_email'];
$date = date('d-m-Y');
$subscriptionrecordexists = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
if (mysql_num_rows($subscriptionrecordexists)){
$subscriptionrecord = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
$row = mysql_fetch_array($subscriptionrecord);
$currentvalidity = $row['date'];
if (strtotime($currentvalidity) >= strtotime($date)){
$newvalidity = date('d-m-Y', strtotime("$currentvalidity +1 month"));
if(mysql_query("UPDATE subscriptions SET date='$newvalidity' WHERE email='$email'")){
ob_start();
?>
<strong>Thanks you for renew your subscription</strong>
<p>Your account has been extended for one month</p>
<p>-------------------------</p>
<?
$resumen = ob_get_contents();
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
$email = $_POST['payer_email'];
$destino=mysql_escape_string($email);
$sheader= "From: ".$maill."\r\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
$asunto='Renew';
mail($destino,$asunto,$resumen,$sheader);
}
}else{
$newvalidity = date('d-m-Y', strtotime("$date +1 month"));
if(mysql_query("UPDATE subscriptions SET date='$newvalidity' WHERE email='$email'")){
ob_start();
?>
<strong>Thanks you for renew your subscription</strong>
<p>Welcome back!</p>
<p>Your account has been extended for one month</p>
<p>-------------------------</p>
<?
$resumen = ob_get_contents();
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
$email = $_POST['payer_email'];
$destino=mysql_escape_string($email);
$sheader= "From: ".$maill."\r\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
$asunto='Renew';
mail($destino,$asunto,$resumen,$sheader);
}
}
}else{
function randomPassword() {
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < 8; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $alphabet[$n];
}
return implode($pass);
}
$password=randomPassword();
$servidor=md5(time()+mysql_escape_string($email));
$newvalidity = date('d-m-Y', strtotime("$date +1 month"));
mysql_query("INSERT INTO subscriptions (email,date) VALUES('". mysql_escape_string($email) ."','$newvalidity') ") or die(mysql_error());
$subscriptionrecor = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
$roww = mysql_fetch_array($subscriptionrecor);
mysql_query("INSERT INTO config (servidor,idsubscription) VALUES('$servidor','$roww[id]') ") or die(mysql_error());
if(mysql_query("INSERT INTO users (nombre,apellidos,email,pass,fecha,grupo,firstlogin,level,servidor) VALUES('".mysql_escape_string($_POST['first_name'])."','".mysql_escape_string($_POST['last_name'])."','". mysql_escape_string($email) ."','".md5($password)."','$newvalidity','Admin','1','1','".$servidor."') ")){
ob_start();
?>
<strong>Thanks you for your purchase</strong>
<p>Your account information</p>
<p>-------------------------</p>
<p>Email: <?=mysql_escape_string($email)?></p>
<p>Password: <?=$password?></p>
<p>-------------------------</p>
<?
$resumen = ob_get_contents();
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
$email = $_POST['payer_email'];
$destino=mysql_escape_string($email);
$sheader= "From: ".$maill."\r\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
$asunto='Purchase';
mail($destino,$asunto,$resumen,$sheader);
}
}
}
else if (strcmp ($res, "INVALID") == 0) {
}
}
fclose ($fp);
}
?>