Я работаю над проектом в 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