Exemplo n.º 1
0
 /**
  * Тест метода checkSuccessAndFailSignature
  */
 public function testCheckSuccessAndFailSignature()
 {
     $config = $this->_getConfig();
     $this->_setConfig();
     $invId = 1;
     $outSum = 2;
     $term = 3;
     $hash = md5($outSum . ':' . $invId . ':' . $config['pass1'] . ':' . 'shpa=' . $term);
     $testResult = Robokassa::checkSuccessAndFailSignature($invId, $outSum, $term, $hash);
     $this->assertEquals($testResult, true);
     $testResult = Robokassa::checkSuccessAndFailSignature($invId, $outSum, $term, 'wrong hash');
     $this->assertEquals($testResult, false);
 }
Exemplo n.º 2
0
 /**
  * Проверка для success и fail одинаковая, так что, выносим в отдельный метод
  *
  * @param sfWebRequest $request
  * @return BillingTransaction
  */
 private function checkSuccessAndFailParams(sfWebRequest $request)
 {
     $userId = $this->getUser()->getUserRecord()->getId();
     // Получаем POST параметры
     $transactionId = (int) $request->getPostParameter("InvId", 0);
     $price = $request->getPostParameter("OutSum", 0);
     $signature = $request->getPostParameter("SignatureValue", "");
     $term = (int) $request->getPostParameter("shpa", 0);
     // Получаем транзакцию
     $transaction = Doctrine::getTable('BillingTransaction')->find($transactionId);
     $this->forward404Unless($transaction);
     // Проверяем ID пользователя
     $this->forward404Unless((int) $transaction->getUserId() == $userId);
     // Проверяем совпадение суммы
     $this->forward404Unless(floatval($transaction->getTotal()) == floatval($price));
     // Проверяем подпись
     $this->forward404Unless(Robokassa::checkSuccessAndFailSignature($transactionId, $price, $term, $signature));
     return $transaction;
 }