/** * @param Order $order */ public function completePayment(Order $order) { $resultCode = $this->request->get('ResCode'); $referenceId = $this->request->get('RefId'); $orderId = $this->request->get('SaleOrderId'); $referenceCode = $this->request->get('SaleReferenceId'); $cardHolderInfo = $this->request->get('CardHolderInfo'); $cardHolderPan = $this->request->get('CardHolderPan'); if ($resultCode != '0') { throw new BankWebserviceException($resultCode); } $order->setCardHolderInfo($cardHolderInfo); $order->setCardHolderPan($cardHolderPan); $order->setReferenceId($referenceId); $order->setReferenceCode($referenceCode); $order->setOrderId($orderId); if ($this->verifyOrder($order)) { $this->gateway->settlePayment($order); } else { $this->gateway->refundPayment($order); } }