function processPayment($data, $form)
 {
     $inputs['Amount'] = $this->Amount->Amount;
     $inputs['InputCurrency'] = $this->Amount->Currency;
     $inputs['TxnData1'] = $this->ID;
     $inputs['TxnType'] = 'Purchase';
     $inputs['CardHolderName'] = $data['CardHolderName'];
     $inputs['CardNumber'] = implode('', $data['CardNumber']);
     $inputs['DateExpiry'] = $data['DateExpiry'];
     if (self::$cvn_mode) {
         $inputs['Cvc2'] = $data['Cvc2'] ? $data['Cvc2'] : '';
     }
     $adapter = new DPSAdapter();
     $responseFields = $adapter->doPayment($inputs);
     $adapter->ProcessResponse($this, $responseFields);
     if ($this->Status == 'Success') {
         $result = new Payment_Success();
     } else {
         $result = new Payment_Failure();
     }
     return $result;
 }