/**
* {@inheritdoc}
*/
public function sendConfirmationReceipt(TransactionInterface $transaction)
{
$parameters = $transaction->getParameters();
if (!array_key_exists('action', $parameters)) {
throw new \RuntimeException('"action" parameter is missing from Transaction.');
}
switch ($parameters['action']) {
case 'accept':
$transaction->setState(TransactionInterface::STATE_OK);
$transaction->setStatusCode(TransactionInterface::STATUS_VALIDATED);
$transaction->getOrder()->setValidatedAt(new \DateTime());
$transaction->getOrder()->setStatus(OrderInterface::STATUS_VALIDATED);
$transaction->getOrder()->setPaymentStatus(TransactionInterface::STATUS_VALIDATED);
return new Response('ok', 200, array('Content-Type' => 'text/plain'));
case 'refuse':
$transaction->setState(TransactionInterface::STATE_KO);
$transaction->setStatusCode(TransactionInterface::STATUS_ERROR_VALIDATION);
return false;
default:
$transaction->setState(TransactionInterface::STATE_KO);
$transaction->setStatusCode(TransactionInterface::STATUS_ERROR_VALIDATION);
return false;
}
}