- N +

paypal支付完成后会员自动退出

paypal支付完成后会员自动退出原标题: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,正常了。

返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

验证码

    评论列表 (暂无评论,共21808人参与)参与讨论

    还没有评论,来说两句吧...