PayPal Instant Payment Notification Listener driver for PHP
This package requires PHP >=5.5
This package is installed via Composer. To install, simply add it
to your composer.json
file:
composer require sudiptpa/paypal-ipn
If you really need to work on guzzle 5.* pull version below.
composer require sudiptpa/paypal-ipn:1.0.x-dev
And run composer to update your dependencies:
$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update
The following are 2 different methods provided by the package to handle PayPal IPN.
require __DIR__.'/vendor/autoload.php';
use PayPal\IPN\Event\IPNInvalid;
use PayPal\IPN\Event\IPNVerificationFailure;
use PayPal\IPN\Event\IPNVerified;
use PayPal\IPN\Listener\Http\ArrayListener;
$listener = new ArrayListener;
/*
* Payload received from PayPal end.
*/
$data = array(
'foo' => 'bar',
'bar' => 'baz',
);
$listener->setData($data);
$listener = $listener->run();
$listener->onInvalid(function (IPNInvalid $event) {
$ipnMessage = $event->getMessage();
// IPN message was was invalid, something is not right! Do your logging here...
});
$listener->onVerified(function (IPNVerified $event) {
$ipnMessage = $event->getMessage();
// IPN message was verified, everything is ok! Do your processing logic here...
});
$listener->onVerificationFailure(function (IPNVerificationFailure $event) {
$error = $event->getError();
// Something bad happend when trying to communicate with PayPal! Do your logging here...
});
$listener->listen();
use PayPal\IPN\Event\IPNInvalid;
use PayPal\IPN\Event\IPNVerificationFailure;
use PayPal\IPN\Event\IPNVerified;
use PayPal\IPN\Listener\Http\InputStreamListener;
$listener = new InputStreamListener;
$listener = $listener->run();
$listener->onInvalid(function (IPNInvalid $event) {
$ipnMessage = $event->getMessage();
// IPN message was was invalid, something is not right! Do your logging here...
});
$listener->onVerified(function (IPNVerified $event) {
$ipnMessage = $event->getMessage();
// IPN message was verified, everything is ok! Do your processing logic here...
});
$listener->onVerificationFailure(function (IPNVerificationFailure $event) {
$error = $event->getError();
// Something bad happend when trying to communicate with PayPal! Do your logging here...
});
$listener->listen();
Contributions are welcome and will be fully credited.
Contributions can be made via a Pull Request on Github.
PayPal provide an Instant Payment Notification (IPN) simulator here: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSimulator/
If you are having general issues with the package, feel free to drop me and email sudiptpa@gmail.com
If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.
This package is open-sourced software licensed under the MIT license.