Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress+中的会话不一致;从Paypal重定向回后的WooCommerce_Php_Wordpress_Session_Woocommerce_Paypal Sandbox - Fatal编程技术网

Php Wordpress+中的会话不一致;从Paypal重定向回后的WooCommerce

Php Wordpress+中的会话不一致;从Paypal重定向回后的WooCommerce,php,wordpress,session,woocommerce,paypal-sandbox,Php,Wordpress,Session,Woocommerce,Paypal Sandbox,我有一个woocommerce的wordpress商店,它启用了paypal支付 我正在开发一个插件,在购物车页面上从客户端收集一些数据,并将这些数据存储在woocommerce会话中。然后,客户端转到paypal进行支付,然后在成功支付后,被重定向回站点的订单确认页面,我的插件应该在该页面执行其他任务 当我从计算机访问测试站点时,它在我的测试站点上运行良好。然而,当我在安卓手机上试用它时,它对我并不起作用 当我从Paypal回来时,会话“似乎”丢失了,并且通过Woocommerce的WC()-

我有一个woocommerce的wordpress商店,它启用了paypal支付

我正在开发一个插件,在购物车页面上从客户端收集一些数据,并将这些数据存储在woocommerce会话中。然后,客户端转到paypal进行支付,然后在成功支付后,被重定向回站点的订单确认页面,我的插件应该在该页面执行其他任务

当我从计算机访问测试站点时,它在我的测试站点上运行良好。然而,当我在安卓手机上试用它时,它对我并不起作用

当我从Paypal回来时,会话“似乎”丢失了,并且通过Woocommerce的WC()->session->get无法访问任何数据

有趣的是,数据仍然存在于数据库的sessions表中,当我从Paypal重定向时,它不会被加载

为了调试它,我在index.php中编写了两行代码,每次加载站点时都要记录Cookie头。当我浏览站点时,我可以看到记录的cookie数据

但是,当从paypal返回导航时,Cookie头是空的,因此会话没有加载也就不足为奇了

我的问题是,我能做些什么,以便在我被重定向回站点后能够访问数据


PS-最棘手的部分是问题是间歇性的。我设法找到了一台带有浏览器的笔记本电脑,它的功能与我的android手机完全相同,因此我可以更轻松地检查问题,但在做了两次测试后,它开始能够在从paypal导航回该网站时访问会话数据。因此,基本上现在“它正在工作”,即使在清除浏览器中的所有站点数据后,我也无法再次重现该问题。但我知道这个问题仍然存在于我办公室以外的一些人身上。

我不会假装自己是第三方cookie会话保存方面的专家,但底线是浏览器在导航到网站时越来越主动地丢弃cookie,因此,如果要保存的数据很重要,就不应该依赖这种类型的会话保存

最新的WooCommerce PayPal模块使用快速结账API,它在重定向用户之前生成一个EC-#######################,当用户从PayPal返回时,您将在URL中看到这个。因此,您可以使用它来跟踪相同的用户返回。但它也支持智能支付按钮,这样你的网站就可以在后台加载,这是一种更好的体验