PHP help (was PayPal IPN & LC)

Richard Miller wow at together.net
Wed May 2 08:43:31 EDT 2012


Any ideas why this would not put "this is just a test" into the file 
"dump.txt"?
PayPal is happy with the script. It indicates it has received the 
correct response when it calls this PHP script.
The script is located in my Documents folder on my (dedicated OSX) server.
I can't set that folder to WRITE permissions, so I have to write the 
data to my cgi-bin folder.
I am trying to write the data to the cgi-bin folder via an ftp write 
(the area shown below from <=== to <====).
The cgi-bin folder is all 777 permissions.

Thanks.
Richard


// PHP 4.1

// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';

// file_put_contents("dump.txt", print_r($_POST, true));

/* set the FTP hostname */ <===========
  $user = "rdm2222";
  $pass = "ilanxxxx";
  $host = "65.23.157.7";
  $file = "dump.txt";
  $hostname = $user . ":" . $pass . "@" . $host . "/" . $file;

  /* the file content */
  $content = "this is just a test.";

  /* create a stream context telling PHP to overwrite the file */
  $options = array('ftp' => array('overwrite' => true));
  $stream = stream_context_create($options);

  /* and finally, put the contents */
  file_put_contents($hostname, $content, 0, $stream); <===========


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.sandbox.paypal.com', 443, $errno, $errstr, 30);
// $fp = fsockopen ('ssl://65.23.157.7/cgi-bin/dpg.cgi', 443, $errno, 
$errstr, 30);



// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];

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
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
?>




More information about the use-livecode mailing list