Jump to content

Urgent need help with paypal ipn script


ILYAS415

Recommended Posts

Hi. Basically i have a paypal IPN script and the problem is its not working.

What basically happens is...

 

User goes through payment system

          |

He pays and payment is succesful

          |

On my ipn script its meant to email the user but it doesn't

 

Script example: http://www.ragingmortals.com/donate.php

You can log in with username: demo    password: demo

NOTE: Only use the above if you want to test the ipn script. Although you'll spend 1p it will be refunded. Just reply here to get a refund of 1p ;)

 

Here is the coding of the form which takes them to paypal to pay and notifies the ipn script:-

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="email hidden ">
<input type="hidden" name="item_name" value="Raging Mortals - Package 1">
<input type="hidden" name="item_number" value="1">
<input type="hidden" name="amount" value="0.01">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="lc" value="GB">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1">


<input type="hidden" name="notify_url" value="http://www.ragingmortals.com/ipn_res.php">
<input type="hidden" name="rm" value="2">
</form>

 

At the end of the script the script is notifying the ipn script.

 

Here is my second script:-

<?

// made by robin kohli (robin@19.5degs.com) for 19.5 Degrees (http://www.19.5degs.com)

// ----- edit these settings

// database settings
$host="localhost";
$ln="";
$pw="";
$db="";

// paypal email
$paypal_email = "azeemilyas@hotmail.co.uk";

// email address where script should send notifications
$error_email = "azeemilyas@hotmail.co.uk";

// email header
$em_headers  = "From: Raging Mortals <paypal@ragingmortals.com>\n";		
$em_headers .= "Reply-To: support@ragingmortals.com\n";
$em_headers .= "Return-Path: support@ragingmortals.com\n";
$em_headers .= "Organization: Raging Mortals\n";
$em_headers .= "X-Priority: 3\n";


// -----------------


require("ipn_cls.php");

$paypal_info = $HTTP_POST_VARS;
$paypal_ipn = new paypal_ipn($paypal_info);

foreach ($paypal_ipn->paypal_post_vars as $key=>$value) {
if (getType($key)=="string") {
	eval("\$$key=\$value;");
}
}

$paypal_ipn->send_response();
$paypal_ipn->error_email = $error_email;

if (!$paypal_ipn->is_verified()) {
$paypal_ipn->error_out("Bad order (PayPal says it's invalid)" . $paypal_ipn->paypal_response , $em_headers);
die();
}


switch( $paypal_ipn->get_payment_status() )
{
case 'Pending':

	$pending_reason=$paypal_ipn->paypal_post_vars['pending_reason'];

	if ($pending_reason!="intl") {
		$paypal_ipn->error_out("Pending Payment - $pending_reason", $em_headers);
		break;
	}


case 'Completed':

	$qry= "SELECT i.mc_gross, i.mc_currency FROM item_table as i WHERE i.item_number='$item_number'";
	mysql_connect("$host","$ln","$pw") or die("Unable to connect to database");
	mysql_select_db("$db") or die("Unable to select database");
	$res=mysql_query ($qry);
	$config=mysql_fetch_array($res);

	if ($paypal_ipn->paypal_post_vars['txn_type']=="reversal") {
		$reason_code=$paypal_ipn->paypal_post_vars['reason_code'];
		$paypal_ipn->error_out("PayPal reversed an earlier transaction.", $em_headers);
		// you should mark the payment as disputed now
	} else {

		if (
			(strtolower(trim($paypal_ipn->paypal_post_vars['business'])) == $paypal_email) && (trim($mc_currency)==$config['mc_currency']) && (trim($mc_gross)-$tax == $quantity*$config['mc_gross']) 
			) {

			$qry="INSERT INTO paypal_table VALUES (0 , '$payer_id', '$payment_date', '$txn_id', '$first_name', '$last_name', '$payer_email', '$payer_status', '$payment_type', '$memo', '$item_name', '$item_number', $quantity, $mc_gross, '$mc_currency', '$address_name', '".nl2br($address_street)."', '$address_city', '$address_state', '$address_zip', '$address_country', '$address_status', '$payer_business_name', '$payment_status', '$pending_reason', '$reason_code', '$txn_type')";


			if (mysql_query($qry)) {

				$paypal_ipn->error_out("This was a successful transaction", $em_headers);			
				// you should add your code for sending out the download link to your customer at $payer_email here.
				$rand= rand("1111111111", "9999999999"); //CODE FOR CLAIMING THE POINTS

				$to = "$payer_email";
				$subject = "You payment - RM";
				$body = "Congratulations! You have purchased some points! Now please follow the below instructions...<br><font color=red><strong>YOUR CODE NUMBER FOR CLAIMING YOUR POINTS IS $rand</font><br>
				Please enter this at the Raging Mortals donation page. If you forget this code you must contact a member of staff by emailing support@ragingmortals.com. We will look into your payment and give you the points manually."; 
				mail($to, $subject, $body);
				echo "<br>Congratulations! You have purchased some points! Now please follow the below instructions...<br><font color=red><strong>YOUR CODE NUMBER FOR CLAIMING YOUR POINTS IS $rand</font><br>
				Please enter this at the Raging Mortals donation page. If you forget this code you must contact a member of staff by emailing support@ragingmortals.com. We will look into your payment and give you the points manually.";

			} else {
				$paypal_ipn->error_out("This was a duplicate transaction", $em_headers);
			} 
		} else {
			$paypal_ipn->error_out("Someone attempted a sale using a manipulated URL", $em_headers);
		}
	}
	break;

case 'Failed':
	// this will only happen in case of echeck.
	$paypal_ipn->error_out("Failed Payment", $em_headers);
break;

case 'Denied':
	// denied payment by us
	$paypal_ipn->error_out("Denied Payment", $em_headers);
break;

case 'Refunded':
	// payment refunded by us
	$paypal_ipn->error_out("Refunded Payment", $em_headers);
break;

case 'Canceled':
	// reversal cancelled
	// mark the payment as dispute cancelled		
	$paypal_ipn->error_out("Cancelled reversal", $em_headers);
break;

default:
	// order is not good
	$paypal_ipn->error_out("Unknown Payment Status - " . $paypal_ipn->get_payment_status(), $em_headers);
break;

} 

?>

 

Please help, thanks. Btw as u can see ipn script was not coded by me :) thats y im struggling :@

 

If theirs any info missing then just mention it plz. thnx

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.