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