Я собираюсь использовать один из платежных шлюзов, поэтому пользователи с моего сайта будут перенаправлены на страницу, размещенную на шлюзе, чтобы предоставить все детали CC. Шлюз вернет результаты на страницу, которую я укажу (назовем ее paymentProcessed.php). Но теперь меня беспокоит следующее:
кто-то может подделать это. Я имею в виду, что кто-то может быть перенаправлен на платежный шлюз, а затем вместо оплаты вернет результаты на страницу моего сайта paymentProcessed.php с подтверждением, что все было оплачено. Это подтверждение будет отправлено самим пользователем через обычный POST, и затем мой сайт будет доставить продукты пользователю, хотя фактического платежа не было. Как обычно избегают подобных ситуаций?
Кто-то перенаправлен на страницу, размещенную на шлюзе, платит, перенаправляет обратно на мой сайт, и срок действия сеанса истек. Обычно я полагаюсь на сеансы, чтобы узнать, должен ли пользователь иметь доступ к определенным частям сайта, но теперь мне нужно реализовать какой-то другой вид проверки страницы подтверждения? На данный момент я думал о хранении идентификатора заказа и случайно сгенерированного значения в базе данных, когда пользователь перенаправил его на шлюз (вместе с общим итогом будет передано на шлюз, а затем обратно, чтобы я мог подтвердить, что правильная сумма была выплачена). Затем, когда подтверждение приходит вместе с идентификатором заказа, моим случайно сгенерированным значением (и общим), вместо того, чтобы полагаться на сеанс, как я обычно делаю для обычных страниц корзины покупок, я должен проверить это значение с совпадающим идентификатором заказа и при необходимости изменить статус заказа. Как обычно решаются такие проблемы?
О каких еще возможных проблемах мне следует подумать?
Я постарался объяснить как можно яснее и надеюсь, что все вышесказанное имеет смысл. пожалуйста, дайте мне знать, если мне нужно что-то уточнить. кстати, я кодирую в php / mysql