I’m having the most difficult time trying to get the PayPal IPN subscription Id. This is my IPN page.
<?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) {
// 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("susbcr_signup" == $_POST['txn_type']){
$_id = $_POST['subscr_id'];
$websites= "websites";
$database = "k29803_1";
mysql_connect("localhost", $username, $password) or die(mysql_error());
mysql_select_db($database);
$query = "SELECT * FROM users WHERE username= 'drahoslava' AND password = 'drah0slava'";
$results = mysql_query($query)or die(mysql_error());
if(mysql_num_rows($results)==1){
$add_credits = "UPDATE users SET hash = '$_id'
WHERE username= 'drahoslava' AND password = 'drah0slava'";
mysql_query($add_credits) or die(mysql_error());
echo 'done';
}
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
}
?>
This is my form
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="6ZZUDQCUUXGMS">
<input type="hidden" name="item_name" value="Baseball Hat Monthly">
<input type="hidden" name="item_number" value="123">
<input type="hidden" name="notify_url" value="http://www.germcode.kodingen.com/ipn.php" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
The Mysql Table doesnt update.. What could be the problem. *I do have auto return on
Sorry this isn’t really an answer per-say but I couldn’t get my suggestion into a comment properly
Try setting up an extra table for testing purposes that will receive a raw dump of the ipn information for each transaction. You can then take a look at what was received to determine why it is not being inserted in your table.
To store all of the raw data you can do like so:
Also, don’t add any echos or prints to the IPN handler script. No one is going to see it anyway.
You might want to add some extra fields to the test table where you can store progression markers to see how far your script is getting before bombing out.