Rev CGI Post

Bridger Maxwell bridgeyman at gmail.com
Mon Aug 6 01:21:50 EDT 2007


Hey,  I am trying to make a Rev CGI play nicely with PayPal, and I am stuck.
 I am trying to implement PayPal's IPN (Instant Payment Notification) which
sends data to a CGI on my site when a purchase is made.  It does this by
sending a POST.  My CGI is supposed to POST back to PayPal the data PayPal
sent me, and a little extra for verification.  As part of the second the
POST, the PayPal site is supposed to send back either "VERIFIED" or
"INVALID."  I hope made sense.  :)
  My CGI is receiving the data, and I try to send a POST back, but no data
is in the "it" variable or the result.  How do I get the data?  Is the POST
command available in a CGI?  Should I just do this with my own custom
sockets?

TTFN
   Bridger Maxwell
   www.FieryFerret.com


If it helps, I have sample PHP code I am working from, and some of my code
from the CGI.

PHP Code (From PayPal):
// 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 ('www.paypal.com', 80, $errno, $errstr, 30);


if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// process payment
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}

My CGI Code:
put empty into gBuffer
  REPEAT until length(gBuffer) >= $CONTENT_LENGTH
    read from stdin until empty
    put it after gBuffer
  END REPEAT
  put "cmd=_notify-validate&" & gBuffer into vReturn

  post vReturn to "http://www.sandbox.paypal.com/cgi-bin/webscr"
 --After this post, the "it" variable is empty, and so is the result



More information about the use-livecode mailing list