Instant payment notification
Last updated
<?php
use Payum\Core\Extension\Context;
use Payum\Core\Extension\ExtensionInterface;
use Payum\Core\Model\PaymentInterface;
use Payum\Core\Request\Generic;
use Payum\Core\Request\GetHumanStatus;
use Payum\Core\Request\GetStatusInterface;
class PaymentStatusExtension implements ExtensionInterface
{
/**
* {@inheritDoc}
*/
public function onPostExecute(Context $context)
{
$request = $context->getRequest();
if (! $request instanceof Generic) {
return;
}
if ($request instanceof GetStatusInterface) {
return;
}
$payment = $request->getModel();
if (! $payment instanceof PaymentInterface) {
return;
}
$context->getGateway()->execute($status = new GetHumanStatus($payment));
// check the status and act accordingly
}
/**
* {@inheritDoc}
*/
public function onPreExecute(Context $context)
{
}
/**
* {@inheritDoc}
*/
public function onExecute(Context $context)
{
}
}