GIF89a;
| Direktori : /home/serb/www/chat/inc/classes/paypal/ |
| Current File : /home/serb/www/chat/inc/classes/paypal/process_paypal.php |
<?php
$ap_site_options['test_ips']=array("localhost","127.0.0.1","sree","192.168.0.0.2","sreekanth");
if($GLOBALS['fc_config']['payment_options']['debug_mode'])
{
$notify_check=($_GET[from]=="notify" || $_GET[from]=="return");
}
else
{
$notify_check=($_GET[from]=="notify");
//$notify_check=($_GET[from]=="notify" || $_GET[from]=="return");//should be removed and the previous line should be uncommented
}//if($GLOBALS['fc_config']['payment_options']['debug_mode'])
if($notify_check)
{
//echo "POST";pre_array($_POST);echo "GET";pre_array($_GET);
$valid_txns=array("subscr_payment","web_accept");
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "inside notify";
$paypal_ipn = new paypal_ipn($_POST);
$paypal_ipn->send_response();
//if($_POST[txn_type]=="Contact Fees")
require_once("init_paypal.php");
foreach ($paypal_ipn->paypal_post_vars as $key=>$value) {
if (getType($key)=="string") {
eval("\$$key=\$value;");//in case register globals is off
}
//if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "$key=$value;<BR><BR>";
$write_date.=("$key=$value;\n");
}
$write_date.="GET VARS";
foreach ($_GET as $key=>$value) {
if (getType($key)=="string") {
eval("\$$key=\$value;");//in case register globals is off
}
//if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "$key=$value;<BR><BR>";
$write_date.=("$key=$value;\n");
$write_date.=("**************************************************************************\n");
$write_date.="PAYPAL RESPONSE\n********************************************************\n".$paypal_ipn->paypal_response."\n************";
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo $write_date."<BR>".$paypal_ipn->is_verified()."<BR>";
}//if($_GET['from']=="notify")
$paypal_ipn->error_email = $ap_site_options[admin_email];
$paypal_comment="paypal notification";
$payer_memberid=$_GET[ref];
$payment_status=$paypal_ipn->get_payment_status();
$paid_amount=$paypal_ipn->get_amount_paid();
//include($folders[base_folder_for_php]."/includes/emails.php");
if($paypal_ipn->is_verified())
{
if (('COMPLETED'==strtoupper($payment_status) || 'PENDING'==strtoupper($payment_status)))
{
$paypal_errors=array();
$query = "select count(*) as same_trans_before from {$GLOBALS['fc_config']['db']['pref']}paypal_log where txn_id='$txn_id'";
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo $query."<BR><BR>";
$stmt = new Statement($query);
$rs = $stmt->process($req['nick']);
if(($rec = $rs->next()) && $rec['same_trans_before'])
{
//$db->setquery($query);
//$transs = $db->select();
//if(sizeof($transs)>0)
//{
//if(!$paypal_testmode)
{
$paypal_errors[]="txn_id : $txnId is already processed";
}
}//if(sizeof($transs)>0) */
// check that receiver_email is your Primary PayPal email
if($_POST['receiver_email'] != $recepient['email'])
{
$paypal_errors[]="receiver email is ".$_POST['receiver_email']." and not " .$recepient['email'];
}
if($_POST['payer_email']!=$payer[email])//$mem_details[email])//option_name1 is not received for "txn_type=subscr_payment;"
{
$paypal_errors[]="payer email is ".$_POST['payer_email']." and not " .$payer[email]." as entered in signup form";
}
if($_POST['mc_currency']!= $recepient['currency_type'])
{
$paypal_errors[]="payment currency is ".$_POST['mc_currency']." and not ". $recepient['currency_type'];
}
//check wether the user cancelled the subscription in paypal
if($_GET['from']=="cancel")//call from cancel
{
$paypal_errors[]="the user canceled the subscription in paypal page ";
}//if($_GET['from']=="cancel")//call from cancel
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "AMOUNTS:($_POST[payment_gross]!=$required_payment_amount)<br>";
if($_POST[payment_gross]!=$required_payment_amount)
{
$paypal_errors[]="Amount is $_POST[payment_gross],actually it should be $required_payment_amount ";
}//if($_POST[payment_gross]!=$required_payment_amount)
if(count($paypal_errors)==0)
{
// process payment
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "hello No Errors<br>";
//process signup and topup
if(in_array($txn_type,$valid_txns))// && in_array($_POST['item_name'],array("Membership Subscription","Topup Maintanence")))
{
//$_GET['mail'] must be st before calling
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo "hello before memsub<br>";
require_once("execute_paypal.php");
//dd_mail_from($ap_site_options[admin_email],$payer[email],$success_msg_subject,$success_msg);
dd_mail_from($ap_site_options[admin_email],$payer[email],$PAYPAL_SUCCESS_TOUSER[$success_msg."_subject"],$PAYPAL_SUCCESS_TOUSER[$_GET[type]."_message"]);
dd_mail_from($ap_site_options[admin_email],$ap_site_options[admin_email],$PAYPAL_SUCCESS_TOADMIN[$_GET[type]."_subject"],$PAYPAL_SUCCESS_TOADMIN[$_GET[type]."_message"]);
}//if(in_array($txn_type,$valid_txns))
//process signup and topup
}
else//if(count($paypal_errors)==0)
{
if($GLOBALS['fc_config']['payment_options']['debug_mode']) echo pre_array($paypal_errors);
}//if(count($paypal_errors)==0)
}//if (('COMPLETED'==strtoupper($payment_status) || 'PENDING'==strtoupper($payment_status)))
else //if (('COMPLETED'==strtoupper($payment_status) || 'PENDING'==strtoupper($payment_status)))
{
// if(in_array($txn_type,$valid_txns))
{
// May be Fraud Case //
{
$error_message .= "Possible fraud. Error with REMOTE IP ADDRESS = $REMOTE_ADDR . The remote address of the script posting to this notify script does not match a valid PayPal data\n";
dd_mail_from($ap_site_options[admin_email],$ap_site_options[admin_email],$PAYPAL_FAILURE_TOADMIN[$success_msg."_subject"],$PAYPAL_FAILURE_TOADMIN[$success_msg."_message"]);
}//May be Fraud Case //
//ERIC - EDIT ME
$msg = "We have failed to locate your registration account with $ap_site_options[project_name].
It is most likely your email address at Paypal is different from your
registered email with us.
Please contact us.";
dd_mail_from($ap_site_options[admin_email],$payer[email],$PAYPAL_FAILURE_TOUSER[$success_msg."_subject"],$PAYPAL_FAILURE_TOUSER[$success_msg."_message"]);
}//if(in_array($txn_id,$valid_txns))
} ////if (('COMPLETED'==strtoupper($payment_status) || 'PENDING'==strtoupper($payment_status)))
} //if($paypal_ipn->is_verified())
elseif(!$paypal_ipn->is_verified())
{
$msg = "Your registration with $ap_site_options[project_name] has failed.
It is most likely that there is a transaction failure
with Paypal.
Please contact us.";
dd_mail_from($ap_site_options[admin_email],$payer[email],"Your account has NOT been activated - $ap_site_options[project_name]",$msg);
}//elseif(!$paypal_ipn->is_verified())
if(count($paypal_errors)>0)//there is one more $paypal_errors check ( for subtype value ) in memberadd.php
{
// mail admin the errors
$msg="The $success_msg of ".$_GET['mail']." failed because \n\n".join($paypal_errors,"\n\n")."\n\n";
dd_mail_from($ap_site_options[admin_email],$payer[email],"$success_msg failure of ".$_GET['mail']."- $ap_site_options[project_name]",$msg);
dd_mail_from($ap_site_options[admin_email],$ap_site_options[admin_email],"$success_msg failure of ".$_GET['mail']."- $ap_site_options[project_name]",$msg);
}//if(count($paypal_errors)>0)
$var_array=array("memberid"=>$_GET[ref],
"details"=>$write_date,
"comment"=>$error_message."\n\n".$msg,
"test_mode"=>$GLOBALS['fc_config']['payment_test_mode'],
"gateway"=>1);
log_paypal($var_array);
}//if($_GET[return]=="notify")
if($_GET['from']=="return")
{
// $mem_details=userdetails($_GET[ref]);
$thanks_message=" is successfully done.";//$_GET[type]."_return";
//echo "member status is $mem_details[status]";
}
if($_GET['from']=="cancel")
{
//$mem_details=userdetails($_GET[ref]);
$thanks_message="has failed";//$_GET[type]."_cancel";
//echo "member status is $mem_details[status]";
}
if(isset($_GET[type]) && in_array($_GET['from'],array("return","cancel")))
{
if(!$GLOBALS['fc_config']['payment_options']['debug_mode'])header("location: paypal_thanks.php?message=$thanks_message&username=$_GET[username]");
} //if(isset($_GET[type])
?>