原标题:paypal支付完成后会员自动退出
导读:
前天朋友遇到个问题,他的网站,客户paypal支付完成后会自动退出会员,再次登录会员后购物车也没有被清空。使用的是pp standard 支付经过多次测试,发现从paypal返...
前天朋友遇到个问题,他的网站,客户paypal支付完成后会自动退出会员,再次登录会员后购物车也没有被清空。
使用的是pp standard 支付
经过多次测试,发现从paypal返回后自动修改了cookie,从而导致oc的session被清空了,这里很明显就是cookie的问题了。后来问了朋友,给出了解决方案
需要修改两个文件
opencart版本:3.0.2
php环境:7.3
修改文件一:
/upload/system/framework.php 110行左右
//原程序设置cookie //setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain')); //修改后设置cookie setcookie($config->get('session_name'), $session->getId(), ['expires' => ini_get('session.cookie_lifetime'), 'path' => ini_get('session.cookie_path'), 'domain' => ini_get('session.cookie_domain'), 'samesite' => 'None', 'secure' => true, 'httponly' => true]);
修改文件二:
/upload/catalog/controller/startup/session.php 25行左右
//原程序设置cookie //setcookie($this->config->get('session_name'), $this->session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain')); //修改后设置cookie setcookie($this->config->get('session_name'), $this->session->getId(), ['expires' => ini_get('session.cookie_lifetime'), 'path' => ini_get('session.cookie_path'), 'domain' => ini_get('session.cookie_domain'), 'samesite' => 'None', 'secure' => true, 'httponly' => true]);
记得更新下ocmod,万一有插件修改到了,你的修改不会生效的。
再次支付测试,ok,正常了。
还没有评论,来说两句吧...