付款重定向成功后,NodeJS Express 会话变空

NodeJS Express Session gets empty after successful payment redirection

我在我的一个电子商务网站中集成了一种支付方式

现在,当我在付款成功完成后进行付款时,它会重定向到请求中提到的 URL,但是当涉及到我的 URL 时,平台上存储的所有会话都会被清除

这里是 node express 中会话的会话配置 SQL 会话 table

let session = require('express-session');
let MySQLStore = require('express-mysql-session')(session);

let db = require('./knexfile.js');
let options = db[environment]['connection'];
let sessionStore = new MySQLStore(options);

app.use(session({
    secret: 'ecommerceSiteSecrets',
    cookie: {
        maxAge: 365 * 24 * 60 * 60 * 1000,
        expires: false
    },
    store: sessionStore,
    saveUninitialized: true,
    resave: true,
}));

现在在我付款之前我的会话如下

Session {
  cookie:
   { path: '/',
     _expires: false,
     originalMaxAge: false,
     httpOnly: true },
  flash: {},
  customer_id: 2,
  email: 'tt1@gmail.com',
  name: 'Alex Stuart',
  type: 'customer',
  user:
   { customer_id: 2,
     customer_first_name: 'Alex',
     customer_last_name: 'Stuart',
     customer_email: 'tt1@gmail.com',
     customer_status: 1 
   },
  orderSession:
   { cart_id: '348,',
     customer_id: '2',
     amount: '225',
     pay_method: '1' 
   } 
}

在成功完成支付后,支付网关将我重定向到成功页面,我想在该页面上执行捕获支付信息并将其存储在数据库中的代码

Session {
  cookie:
   { path: '/',
     _expires: false,
     originalMaxAge: false,
     httpOnly: true 
   } 
}

请指导我哪里做错了!

尝试使用节点会话存储方法。您可以在付款请求之前和付款完成后设置所需的会话数据,您需要为您的会话获取会话存储并重新更新您的节点会话。

例如获取会话并将其保存在会话存储中

  customer_id: 2,
  email: 'tt1@gmail.com',
  name: 'Alex Stuart',
  type: 'customer',
  user:
   { customer_id: 2,
     customer_first_name: 'Alex',
     customer_last_name: 'Stuart',
     customer_email: 'tt1@gmail.com',
     customer_status: 1 
   },
  orderSession:
   { cart_id: '348,',
     customer_id: '2',
     amount: '225',
     pay_method: '1' 
   } 

可以参考以下方法-

const storage = require('node-sessionstorage');
storage.setItem('userSession', 'YourSessionArray');
console.log('item set:', storage.getItem('userSession'));