Данные сеанса CodeIgniter будут утеряны после того, как пользователь будет перенаправлен обратно на сайт из платежного шлюза - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю над проектом в CodeIgniter 3. Пользователь может сделать онлайн-платеж через платежный шлюз paytm на странице бронирования.

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

Это моя конфигурация сеанса:

 $config['sess_driver'] = 'files';
 $config['sess_cookie_name'] = 'ci_session';
 $config['sess_expiration'] = 7200;
 $config['sess_save_path'] = BASEPATH . 'cache/sessions/';
 $config['sess_match_ip'] = FALSE;
 $config['sess_time_to_update'] = 300;
 $config['sess_regenerate_destroy'] = FALSE;

Это контроллер, который обрабатывает ответ, отправленный платежным шлюзом

public function paytmResponse(){
    $this->load->model('booking_model');
    $this->load->model('user_model');
    $this->load->library('paytm');
    $paytmChecksum = isset($_POST["CHECKSUMHASH"]) ? $_POST["CHECKSUMHASH"] : ""; 
    $this->booking_model->updatePaymentType($_SESSION['bid'], 'online');
    $valid_checksum = $this->paytm->verifyChecksum($_POST, $paytmChecksum);
    if($valid_checksum){
        if($_POST["STATUS"] == "TXN_SUCCESS"){  
            $this->booking_model->savePaymentDetails($_SESSION['bid']);
            $this->booking_model->updateBookingStatus($_SESSION['bid'], 'pending');
            $status = 1; 
        }
        else{
            $this->booking_model->updateBookingStatus($_SESSION['bid'], 'failed');
            $status = 0;
        }
    }
    else{
        $this->booking_model->updateBookingStatus($_SESSION['bid'], 'failed');
        $status = 2;
    }       
    if($status == 1){        
        redirect('booking/success');
    }    
    else{  
        $_SESSION['booking_error'] = 'Payment failed';         
        redirect('booking/failure');
    }
}

Я использую библиотеку сеансов codeigniter, php версия 7.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...