@Z_Coder

Почему вылетают сессии после оплаты на странице банка?

Пользователь заходит на сайт платного тестирования, авторизуется, формируется заказ и пользователю выставляется счет, после чего пользователь переходит на платежную страницу обслуживающего нас банка для оплаты картой.

Проблема: После того как оплата успешно проведена, пользователь нажимает кнопку на странице банка "Вернуться на сайт", а именно:

<input type="button" onclick="location.href="http://www.mysite.com/test"" value="Вернуться на сайт">


Однако вместо того чтобы попасть на страницу тестирования пользователь вновь попадает на страницу авторизации, так как сессия, содержащая данные пользователя вылетела. Примечательно то, что уже авторизовавшись в этот раз и последующие разы все работает нормально. Но стоит нажать "Выйти" на сайте и попытаться пройти тестирование вновь, проблема появляется.

Сайт сделан на Yii. Вот код UserIdentity:

class UserIdentity extends CUserIdentity
{

    private $_id;

    public function authenticate()
    {

        $user=User::model()->findByAttributes(array('name'=>$this->username));
        if($user===null){
            $this->errorCode=self::ERROR_USERNAME_INVALID;
        }
        else if(!$user->validatePassword($this->password)){
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        }
        else
        {
            $this->_id=$user->id;
            $this->username=$user->name;
            if(!empty($user->role))
                $this->setState('role', $user->role);
            $this->setState('confirmed', $user->confirmed);
            $this->errorCode=self::ERROR_NONE;
        }
        return $this->errorCode==self::ERROR_NONE;
    }


   public function getId()
    {
        return $this->_id;
    }
}


Пробовал сохранить обычную сессию типа $_SESSION[""], но она тоже обнуляется после возврата с банка на сайт.

Битый час потратил на решение этой проблемы. В чем может быть дело? Может, кто-то с этим сталкивался? Как её решить? Если какого-то кода не хватает, дайте знать.

Спасибо.
  • Вопрос задан
  • 2510 просмотров
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
Посмотрите как сделано тут https://github.com/ikeagold/yii-user
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы