Запускаются ли сеансы PHP при переходе на платежный шлюз?

Если бы я должен был хранить некоторые данные о заказе в сеансе, в то время как клиент перенаправляется на платежный шлюз, они будут потеряны к моменту, когда пользователь вернется обратно с шлюза?

Мой план:

веб-сайт принимает заказ -> порядок магазина в сеансе -> сайт переходит к paypal -> сделанный платеж -> возвращает с помощью paypal autoreturn на страницу подтверждения -> с возвратом получать данные заказа на сеанс и отправлять в базу данных.

Related of "Запускаются ли сеансы PHP при переходе на платежный шлюз?"

Это зависит от того, сколько времени потребуется, чтобы вернуться на ваш сайт. Я не знаю, какое время истечения по умолчанию для сеансов, но вы можете предположить, что это будет от нескольких минут до нескольких часов.

Если вы хотите убедиться, что пользователь получает все, что ему нужно, вам понадобится шлюз оплаты для перенаправления пользователя на указанный вами URL. Например:

/payment.php?status=complete&receipt=875628dwf87sdfsg785623

Если квитанция идентифицирует все, что вы хотите, это: пользователь, транзакция, оба?

Большинство платежных шлюзов поддерживают такую ​​функцию. Если у вас нет, обратитесь к платежному шлюзу.

Если вы хотите показать им квитанцию, не используйте сеансы или файлы cookie, используйте метод возвращаемого URL, который я описываю.

Я нашел проблему.

Paypal перенаправляет обратно клиента на ваш сайт без www.

cookies на http://www.yoursite.com являются http://yoursite.com , не считаются одинаковыми.

Чтобы исправить это, добавьте .htaccess в свой www root;

 RewriteEngine on RewriteCond %{HTTP_HOST} ^yoursite.com$ RewriteRule ^.*$ "http\:\/\/www\.yoursite\.com" [R=301,L] 

Сеансы не будут «потеряны», если ваш сервер поддерживает файлы cookie сеанса, но они могут истекли .

Сессия может быть потеряна, если посетитель находился в HTTP при выходе и возвращается как HTTPS (или наоборот)

Сеанс – это идентификатор для идентификации сеанса и данных, принадлежащих сеансу. Данные хранятся на вашем сервере столько, сколько вам захочется. Идентификатор либо сохраняется как файл cookie, либо обрабатывается как параметр GET, которого следует избегать в целом. Если у вас есть идентификатор, сохраненный в cookie, тогда нет причин, по которым другой сайт должен вмешиваться в него.

Поэтому я не вижу причин, по которым ваша сессия должна быть потеряна.

До тех пор, пока у клиента есть куки-файлы, включенные в их браузере, сессия останется, когда они вернутся, если только они не закрыли свое окно браузера. Идентификаторы сеансов хранятся в файле cookie, который заканчивается, когда браузер закрывается.

Вы также могли бы, если бы захотели, сохранить информацию в файле cookie, хотя это было бы менее предпочтительным, если бы была какая-либо личная информация, которую вам нужно было сохранить.

EDIT также, ответ о создании сеанса в HTTPS, а затем повторный доступ к нему в HTTP, верен.