Esempio n. 1
0
 /**
  * Process logic by payment Type
  *
  * @return string $rc
  */
 private function doProcessType()
 {
     $type = new Type($this->payment->type, $this->payment->toArray());
     $paymentExist = self::findDouble($this->payment->id, $this->payment->term, $this->payment->order, $this->payment->amount, $type->sid(), array(Status::SUCCESS, Status::PROCESSED));
     if ($paymentExist) {
         return '-3';
     }
     switch ($type->sid()) {
         case Type::AUTH:
         case Type::SALE:
         case Type::PAYMENT:
             break;
         case Type::COMPLETE:
             // completing auth request
             $payment = self::find($this->payment->term, $this->payment->order, $this->payment->irn, $this->payment->rrn, Type::AUTH, Status::SUCCESS);
             if (!$payment) {
                 return '-2';
             }
             break;
         case Type::REFUND:
             // refund for finished processing: sale, complete, payment
             $payment = self::find($this->payment->term, $this->payment->order, $this->payment->irn, $this->payment->rrn, array(Type::SALE, Type::COMPLETE, Type::PAYMENT), Status::SUCCESS);
             if (!$payment) {
                 // refund for not finishing processing: auth
                 $payment = self::find($this->payment->term, $this->payment->order, $this->payment->irn, $this->payment->rrn, Type::AUTH, Status::SUCCESS);
                 if (!$payment) {
                     return '-2';
                 }
             }
             break;
     }
     return '00';
 }