Hi guys!

I'm going to use paypal with my site, and they have a cool "instant 
notification" feature which sends, to a page I preassign, information 
about a transaction as it happens.  My script is supposed to:
a) receive this information (as a "post")
b) send it back to them with a sort of "is this really coming from 
you?" message
c) get a confirmation from them, "yes, this came from us"
d) take the post and insert it into my database or whatever else I'd 
like to do with it.

They have provided a perl sample script (see below).

Mostly I'm just trying to figure out how to replicate the whole 
"receiving", "sending", and "receiving again" thing in PHP.  This is 
especially tricky since I apparently can't test my work without 
actually going through a transaction on paypal (and spending money). 
I sorta have to get it right the first time.

Anyone done this before?

Thanks again!
Sondra

sample perl script:

   # read the post from PayPal system and add 'cmd'
   read (STDIN, $query, $ENV{'CONTENT_LENGTH'});
   $query .= '&cmd=_notify-validate';

   # post back to PayPal system to validate
   use LWP::UserAgent;
   $ua = new LWP::UserAgent;
   $req = new HTTP::Request 'POST','https://www.paypal.com/cgi-bin/webscr';
   $req->content_type('application/x-www-form-urlencoded');
   $req->content($query);
   $res = $ua->request($req);

   # split posted variables into pairs
   @pairs = split(/&/, $query);
   $count = 0;
   foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $variable{$name} = $value;
   $count++;
   }

   # assign posted variables to local variables
   $receiver_email = $variable{'receiver_email'};
   $item_name = $variable{'item_name'};
   $item_number = $variable{'item_number'};
   $custom = $variable{'custom'};
   $payment_status = $variable{'payment_status'};
   $payment_date = $variable{'payment_date'};
   $payment_gross = $variable{'payment_gross'};
   $payment_fee = $variable{'payment_fee'};
   $txn_id = $variable{'txn_id'};
   $first_name = $variable{'first_name'};
   $last_name = $variable{'last_name'};
   $address_street = $variable{'address_street'};
   $address_city = $variable{'address_city'};
   $address_state = $variable{'address_state'};
   $address_zip = $variable{'address_zip'};
   $address_country = $variable{'address_country'};
   $payer_email = $variable{'payer_email'};
   if ($res->content eq 'VERIFIED') {
   # check transaction for uniqueness
   # process payment
   }
   elsif ($res->content eq 'INVALID') {
   # possible fraud
   }
   else {
   # error
   }




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to