Добрый день. Начал разбираться с платежными системами. В качестве первой выбрана была яндекс форма для приема платежей. У меня вопрос возник по самому принципу работы. Пользователь перешел на форму оплаты, оплатил. Платежная система отправляет запрос об успешной оплате обратно на сайт и передают например id заказа. А что мешает злоумышленнику отправить такой же запрос (например через cUrl) с id своего заказа, не оплачивая заказ? Или я в алгоритме оплаты чего-то не учел? Конечно как вариант можно помимо мониторинта сайта, где будет отображаться статус заказа (в админ панели например) еще и проверять каждый раз яндекс кошелек или почту, на которую придет емейл от яндекса, но это не совсем удобно.
Там много параметров возвращается, в том числе и прошла оплата или нет. Проверяйте этот параметр, а не просто id.
Мешает многое. Ты должен обработать нормально данные и записать их например в бд Время транзакции, айди, сумму, статус Сверить полученные данные от сервера оплаты и установить новый статус заказу, не забыв при этом проверить его существование. Сервер оплаты не только и не зря!!! отправляет тебе айди заказа с другой информацией, который ты просто обязан проверять на своем сервере. Тогда можно вообще не переживать, даже если этот самый сервер оплаты хакнут.
Что в доках забыли об этом написать? Нет, не забыли: https://yandex.ru/dev/money/doc/dg/...otification-p2p-incoming__verify-notification
Спасибо вам всем большое за ответы, вникаю потихоньку. Скажите, какие, на данный момент, оптимальные платежные системы для подключения к сайту? Или может быть агрегаторы? К примеру, если сайт: интернет-магазин или пиццерия, с возможностью доставки и онлайн оплаты.
Обычно между сайтом и сервисом к каждому запросу прилагается секретный ключ. Запрос можно подделать, только украв этот ключ из сервера или взломав аккаунт на сервисе. Кроме того, сервисы предоставляют API для доступа к списку транзакций. То есть получив входящий id, скрипт может дополнительно сделать запрос к платежной системы для проверки, существует ли такой платеж и какой у него статус. Это всё в общих чертах.
Спасибо, хотябы в общих чертах понял, как все работает. Но походу полностью разобраться поможет только реальный проект. Можете посоветовать, какие платежные системы и сервисы, на данный момент, лучше всего использовать? Вы сами какие обычно подключаете?
Насколько я понимаю там должна быть система по типу jwt с секретными токенами и пр. Т.е. не все так просто - бомбить сайты с яндекс-кассой так вот легко не получится)))
Спасибо, жаль только докоментация у них англоязычная. Я с английским пока не очень. Скажите, а яндекс касса вообще популярна или у нее есть какие-то недостатки? --- Добавлено --- В каком-то смысле жаль))))
Плохо документацию читали... В каждой эпс есть подпись. В ЯД вот так PHP: if ($_POST["sha1_hash"] == $sign_hash) { $sign_hash сами сгенерируйте, и помните там один из параметров секретный ключ. Ключ этот знаете только вы Подпись ваша равна той что ЯД прислал? - пополняем. Нет? - Error!
Я работаю с betatransfer-merchant с ними никаких проблем нет, удобная мерчант форма, оперативные выплаты