コード例 #1
0
ファイル: cardpay.php プロジェクト: Nikitian/fl-ru-damp
 /**
  * Принимает от assist результаты платежа, производит зачисление.
  *
  * @param array $req   массив $_POST с данными.
  */
 function checkdeposit($req)
 {
     $this->log->writeln('Поступление платежа.');
     $this->log->writevar($req);
     if ($req['merchant_id'] != self::MERCHANT_ID) {
         $this->fail(self::ERR_MERCHANT_ID);
     }
     $hash_x = $req['merchant_id'] . $req['ordernumber'] . $req['amount'] . $req['currency'] . $req['orderstate'];
     $hash = strtoupper(md5(strtoupper(md5($this->_secret) . md5($hash_x))));
     if ($hash != $req['checkvalue']) {
         $this->fail(self::ERR_HASH);
     }
     if ($req['responsecode'] == 'AS000' && $req['orderstate'] == 'Approved') {
         $card_account = new card_account();
         $billing_no = $card_account->checkPayment($req['ordernumber']);
         if (!$billing_no) {
             $this->fail(self::ERR_ORDERNUM);
         }
         $amm = $req['orderamount'];
         $descr = "CARD номер счета в ассисте {$req['billnumber']} с карты {$req['meantypename']} {$req['meannumber']} " . "сумма - {$req['orderamount']} {$req['ordercurrency']}, " . "обработан {$req['packetdate']}, номер покупки - {$req['ordernumber']}";
         if ($error = $this->deposit($op_id, $billing_no, $amm, $descr, 6, $req['orderamount'])) {
             $this->fail(self::ERR_DEPOSIT, $error);
         }
     }
     $this->success($req['billnumber'], $req['packetdate']);
 }
コード例 #2
0
 public function handleRequest($src = null, $req = array())
 {
     $this->_action = $src;
     $this->_request = $req;
     switch ($this->_action) {
         case self::DO_REQUEST_CHECKIN:
             $this->_log('response')->writeln('CHECKIN');
             $this->_log('response')->writevar($req);
             if (!$this->_validate()) {
                 echo $this->_response('NO', 'Ошибка проверки подлинности запроса.');
                 exit;
             }
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
             $uid = intval($req['userid']);
             $user = new users();
             $user->GetUserByUID($uid);
             if ($user->uid > 0) {
                 echo $this->_response('YES', 'Пользователь существует.');
                 exit;
             } else {
                 echo $this->_response('NO', 'Пользователь не существует.');
                 exit;
             }
             break;
         case self::DO_REQUEST_PAYMENT:
             $this->_log('response')->writeln('PAYMENT');
             $this->_log('response')->writevar($req);
             if (!$this->_validate()) {
                 echo $this->_response('NO', 'Ошибка проверки подлинности запроса.');
                 exit;
             }
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php';
             $card_account = new card_account();
             $billing_no = $card_account->checkPayment($req['orderid']);
             if (!$billing_no) {
                 $this->_log('response')->writeln('Платеж не найден.');
                 echo $this->_response('NO', 'Номер платежа не найден.');
                 exit;
             }
             $req['date'] = date('Y-m-d H:i:s');
             $amm = $req['amount'];
             $descr = "CARD номер платежа в системе ДеньгиОнлайн {$req['paymentid']}  " . "сумма - {$req['amount']} руб., " . "обработан {$req['date']}";
             if ($error = $this->deposit($op_id, $billing_no, $amm, $descr, 6, $req['amount'])) {
                 $this->_log('response')->writeln('Ошибка проведения платежа.');
                 echo $this->_response('NO', $error);
                 exit;
             }
             $this->_log('response')->writeln('Платеж принят.');
             echo $this->_response('YES');
             break;
         case self::DO_REQUEST_SUCCESS:
             $this->_log('response')->writeln('SUCCESS');
             header_location_exit('/bill/cardsuccess/');
             break;
         case self::DO_REQUEST_FAILURE:
             $this->_log('response')->writeln('FAILURE');
             $_SESSION['bill.GET']['error'] = '';
             header_location_exit('/bill/fail/');
             break;
         default:
             break;
     }
 }