diff --git a/Model/Method/AbstractCc.php b/Model/Method/AbstractCc.php index bca689e..06424bc 100644 --- a/Model/Method/AbstractCc.php +++ b/Model/Method/AbstractCc.php @@ -230,6 +230,20 @@ public function processPayment($payment) list($status, $message) = $this->_ipagHelper->getStatusFromResponse($transactionResponse); + if (in_array((int) $status, [3, 7], true)) { + if ($order->canCancel()) { + $order->cancel(); + } + + $order->addStatusHistoryComment( + __('iPag response received. Payment was declined or canceled. Message response: %1.', $message) + )->setIsCustomerNotified(false); + + $order->save(); + + return $this; + } + $this->_ipagHelper->registerOrderStatusHistory($order, $status, $message); return $this;