PayPal IPN
PayPal Instant Payment Notification Listener driver for PHP, (*1)
, (*2)
Requirements
This package requires PHP >=5.5, (*3)
Installation
This package is installed via Composer. To install, simply add it
to your composer.json file:, (*4)
composer require sudiptpa/paypal-ipn
If you really need to work on guzzle 5.* pull version below., (*5)
composer require sudiptpa/paypal-ipn:1.0.x-dev
And run composer to update your dependencies:, (*6)
$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update
Basic Usage
The following are 2 different methods provided by the package to handle PayPal IPN., (*7)
Using ArrayListener by passing array of Data
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();
Contributing
Contributions are welcome and will be fully credited., (*8)
Contributions can be made via a Pull Request on Github., (*9)
Testing
PayPal provide an Instant Payment Notification (IPN) simulator here: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSimulator/, (*10)
Support
If you are having general issues with the package, feel free to drop me and email sudiptpa@gmail.com, (*11)
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., (*12)
License
This package is open-sourced software licensed under the MIT license., (*13)