我正在使用 CodeIgniter 3 开发一个项目。用户可以通过预订页面上的 paytm 支付网关进行在线支付。
用户完成付款流程后,他将被重定向回我的网站,该网站由响应控制器处理,我正在使用存储在会话中的预订 ID 更新预订详细信息,如付款方式和预订状态。当我尝试在此控制器中访问会话数据时,会话数据不可用。
这是我的会话配置:
$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
守着星空守着你
跃然一笑
慕妹3242003