Exemplo n.º 1
0
 /**
  * Тест метода checkResult
  */
 public function testCheckResult()
 {
     $config = $this->_getConfig();
     $this->_setConfig();
     $invId = 1;
     $outSum = 2;
     $term = 3;
     $hash = md5($outSum . ':' . $invId . ':' . $config['pass2'] . ':' . 'shpa=' . $term);
     $testResult = Robokassa::checkResult($invId, $outSum, $term, $hash);
     $this->assertEquals($testResult, true);
     $testResult = Robokassa::checkResult($invId, $outSum, $term, 'wrong_hash');
     $this->assertEquals($testResult, false);
 }
Exemplo n.º 2
0
 /**
  * /robokassa/result
  * Отвечает на запрос робокассы, о результате операции
  *
  * @param sfWebRequest $request
  */
 public function executeResult(sfWebRequest $request)
 {
     // Web-debug панеька не нужна в dev
     sfConfig::set('sf_web_debug', false);
     // Получаем POST параметры
     $transactionId = (int) $request->getPostParameter("InvId", 0);
     $price = $request->getPostParameter("OutSum", 0);
     $signature = $request->getPostParameter("SignatureValue", "");
     $term = (int) $request->getPostParameter("shpa", 0);
     // Проверяем ID транзакции
     $transaction = Doctrine::getTable('BillingTransaction')->find($transactionId);
     $this->forward404Unless($transaction);
     // Проверяем цену
     $this->forward404Unless(floatval($transaction->getTotal()) == floatval($price));
     // Проверяем подпись
     $this->forward404Unless(Robokassa::checkResult($transactionId, $price, $term, $signature));
     // Если проверка успешна, отоправляем "OK+номер транзакции" без обвязки!
     $this->getResponse()->setContent("OK" . $transactionId);
     return sfView::NONE;
 }