Артем Л.
11416 сообщений
#6 лет назад
Столкнулся со странной проблемой.
Прием платежей на сайте, и все бы хорошо но иногда платеж дублируется и пополнение происходит 2 раза на одну и туже сумму.
Хотя приход есть только один раз на кошелек.
Такое и на вебмани может быть и на яндекс-деньги, причем иногда второе пополнение в ту же секунду бывает, а иногда через 10-15 минут.... не могу понять что за фигня и как это лечить? Никто не сталкивался?
Александр К.
209 сообщений
#6 лет назад
А по каким данным видно дублирование платежа: в том что отдает API платежного шлюза?
Артем Л.
11416 сообщений
#6 лет назад
Два раза происходит пополнение баланса у пользователя в личном кабинете.
Такое ощущение как будто шлюз оповещает сайт два раза.
Но проблема на разных шлюзах (яндекс и вебмани), поэтому навряд ли у них может быть одинаковая проблема и дело тут в другом.
Александр К.
209 сообщений
#6 лет назад
А как процесс взаимодействия организован: 
- ушел запрос на оплату
- пришел ответ об оплате
- данные записались в базу

как правило при определенных условиях (не получен ответ от сервера и т.д.) шлюзы делают повторную отправку данных о результатах операции
- возможно ваш вариант, хотя если есть проверка при сохранении данных по номеру счета оплаты или еще по какому параметру, то мой вариант не подойдет
Роман Беляев
16382 сообщения
#6 лет назад
Hungry_Hunter, идентификаторы транзакций, по которым деньги переводятся хранятся? 
Александр К.
209 сообщений
#6 лет назад
frig, давно хотел написать, при оплате услуг сайта, меня не возвращает обратно, а оставляет на странице с какой-то технической информацией, и "приходится" ))) возвращаться на сайт вбивая его адрес. Можно что бы не приходилось? 
Роман Беляев
16382 сообщения
#6 лет назад
a_kulikov, когда повторится - скиньте скриншот в личку и адрес где остаетесь. 
Артем Л.
11416 сообщений
#6 лет назад
Похоже вы на верном пути.
a_kulikov, да, все так и устроено, и похоже что в этом и кроется причина!
frig, идентификаторы транзакций не хранятся, просто при каждом пополнении пишется новые внутренний идентификатор в БД.
Будем добавлять проверку, спасибо :-)
Дмитрий Ч.
2787 сообщений
#6 лет назад
Цитата (Hungry_Hunter):
rig, идентификаторы транзакций не хранятся, просто при каждом пополнении пишется новые внутренний идентификатор в БД.
Будем добавлять проверку, спасибо :-)
побуду кэпом, но без этого никак.
странно что у вас только по два раза повторяется. у многих платежных систем отчет о транзакции может ломиться десятки раз абсолютно по разным причинам (не устроил ответ сервера, проблемы на стороне платежной системы... да что угодно).

проверка по id транзакции платежной системы нужен.

а проверки на вшивость у вас есть?... - от кого подтверждение платежа пришло, проверка зашифрованных ключей транзакции и тд? - то чего пользователь при оплате со страницы платежа вытянуть не может - то что знаете только вы и платежная система в момент отправки пользователя в платежную систему с фиксированной суммой платежа.
Артем Л.
11416 сообщений
#6 лет назад
Цитата (UniText):
странно что у вас только по два раза повторяется.
Причем всего пару раз в месяц.

Цитата (UniText):
а проверки на вшивость у вас есть?
Да, с этим конечно все норм сделали :-)