Thank you for clarifying it for me!
I tried to use Paypal Pro but I got stuck when it asked the following:
Merchant account password with Paypal
Merchant account signature with Paypal
I logged into my Paypal account and the only thing I found was Merchant account ID. I called Paypal and they said that I needed to pay a monthly fee. That is the reason why I chose Paypal Standard; no monthly fees.
Setting up the IPN page for Paypal Standard
1) Copy the following code obtained from Paypal and paste it into a new page and call it live_ipn_mail.php or anything you want
<?php error_reporting(E_ALL ^ E_NOTICE); $email = $_GET['ipn_email']; $header = ""; $emailtext = ""; // Read the post from PayPal and add 'cmd' $req = 'cmd=_notify-validate'; if(function_exists('get_magic_quotes_gpc')) { $get_magic_quotes_exists = true; } foreach ($_POST as $key => $value) // Handle escape characters, which depends on setting of magic quotes { if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1){ $value = urlencode(stripslashes($value)); } else { $value = urlencode($value); } $req .= "&$key=$value"; } // Post back to PayPal 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);
// Process validation from PayPal // TODO: This sample does not test the HTTP response code. All // HTTP response codes must be handled or you should use an HTTP // library, such as cUrl
if (!$fp) { // HTTP ERROR } else { // NO HTTP ERROR fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { // TODO: // Check the payment_status is Completed // Check that txn_id has not been previously processed // Check that receiver_email is your Primary PayPal email // Check that payment_amount/payment_currency are correct // Process payment // If 'VERIFIED', send an email of IPN variables and values to the // specified email address foreach ($_POST as $key => $value){ $emailtext .= $key . " = " .$value ."\n\n"; } mail($email, "Live-VERIFIED IPN", $emailtext . "\n\n" . $req); } else if (strcmp ($res, "INVALID") == 0) { // If 'INVALID', send an email. TODO: Log for manual investigation. foreach ($_POST as $key => $value){ $emailtext .= $key . " = " .$value ."\n\n"; } mail($email, "Live-INVALID IPN", $emailtext . "\n\n" . $req); } } } fclose ($fp); ?>
I paste it above the <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
2) Log in to Paypal and click on Profile, My selling tools, and Instant payment notifications. Click on Choose IP settings button.
3) Choose Receive IPN messages (Enabled) and enter Notification URL
"http://www.WEBSITE NAME.com/live_ipn_mail.php"
Are these the correct steps in setting up and IPN page?