<?php /* * An example script for testing pre-made IPN requests locally. * * Because we manually provide the data that is normally sent by PayPal, * we can run this script from command line or open it in a web browser * and see the output. */ include dirname(dirname(__FILE__)) . '/src/IpnListener.php'; use dezlov\PayPal\IpnListener; $listener = new IpnListener(); $listener->use_sandbox = true; // Example IPN request data, we expect PayPal to tell us that it is "INVALID". $example_request_data = 'mc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&address_street=1+Main+St&payment_date=20%3A12%3A59+Jan+13%2C+2009+PST&payment_status=Completed&charset=windows-1252&address_zip=95131&first_name=Test&mc_fee=0.88&address_country_code=US&address_name=Test+User¬ify_version=2.6&custom=&payer_status=verified&address_country=United+States&address_city=San+Jose&quantity=1&verify_sign=AtkOfCXbDm2hu0ZELryHFjY-Vb7PAUvS6nMXgysbElEn9v-1XcmSoGtf&payer_email=gpmac_1231902590_per%40paypal.com&txn_id=61E67681CH3238416&payment_type=instant&last_name=User&address_state=CA&receiver_email=gpmac_1231902686_biz%40paypal.com&payment_fee=0.88&receiver_id=S8XGHLYDW9T3S&txn_type=express_checkout&item_name=&mc_currency=USD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00&transaction_subject=&payment_gross=19.95&shipping=0.00'; // Verify IPN request trhough PayPal $error = null; $verified = $listener->tryProcessIpn($example_request_data, $error); if ($verified) { echo 'IPN verified successfully.' . PHP_EOL; } else { echo 'IPN error: ' . $error . PHP_EOL; } // Print out debug information print_r($listener->getData()); echo $listener->getTextReport();
<?php /* * This script verifies and logs to a file all received IPN requests. * You can use it with PayPal IPN Simulator, just upload it to your server * and specify its path as IPN handler URL: * https://developer.paypal.com/developer/ipnSimulator/ * * Make sure that your web server has write access to the folder with this script, * otherwise you won't see any logs being created. */ include dirname(dirname(__FILE__)) . '/src/IpnListener.php'; use dezlov\PayPal\IpnListener; $listener = new IpnListener(); $listener->use_sandbox = true; $error = null; $verified = $listener->tryProcessIpn(null, $error); $report = $listener->getTextReport(); ipn_log($verified, $report, $error); function ipn_log($verified, $report, $error) { if ($verified) { $filename = 'ipn_verified.log'; $content = $report; } else { $filename = 'ipn_errors.log'; $content = 'ERROR: ' . $error . PHP_EOL . $report; } file_put_contents($filename, $content, FILE_APPEND | LOCK_EX); }