Проблема такого плана:
если при проведении платежа например по банковской карте,
клиент не верно ввел данные карты, банк отказал в проведении операции, или сам клиент нажал отмену
там есть кнопки "Вернуться в магазин" или "Повторить платеж". При этом сессия не разрывается и можно заново ввести
данные банковской карты и платеж успешно проходит, но только у SimplePay, деньги при этом снимаются с банк. карты, но
в биллинг они не поступают, т.к. платеж уже считается ошибочным.
Вот она и проблема - деньги с карты сняли, а в биллинге их нет.
Привожу ответы переписки с тех. поддержкой SimplePay:
Код:
По данным платежам видим следующую ситуацию: платежи по факту были проведены, но со второго раза.
То есть, плательщик первый раз ввел одну карту и получил от банка отказ.
Оповещение об отказе было перенаправлено системой SimplePay в виде REJECT-оповещения на Ваш Result URL.
Далее плательщик ввел другую карту и оплатил удачно, о чем было отправлено второе оповещение, уже с sp_result=1.
Важно нужно зачислять платежи по поступлении sp_result=1, даже если перед этим по тем же
транзакциям приходили уведомления с sp_result=0 об отмене оплаты.
Код:
По всей видимости Ваша система окончательно переводит статус заказа в отменен,
и после этого уже не меняет его обратно при поступлении уведомления на Result об успешном статусе.
Я сделал такой ошибочный платеж и на скринах видно, что платеж в л.к. SimplePay есть, а биллинге он ошибочный.
Я пытался доказать, что так делать нельзя, но они говорят, что у них такой протокол.
У нас в день таких около двух до пяти платежей, напряжно отслеживать.
В логах сервера ничего нет, во время моделирования увидел только это, ну думаю это не то:
Код:
0-01/13:38:50 INFO [http-bio-0.0.0.0-8080-exec-2] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1443695930632
10-01/13:38:50 INFO [http-bio-0.0.0.0-8080-exec-2] CommonKernelEventProcessor - Process event cid:46943; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 46943; scid: -1; userId: 0; timestamp: 1443695930702
10-01/13:39:01 ERROR [http-bio-0.0.0.0-8443-exec-7] ModuleExecutor - Transaction for ID = 179 has status != 'created'
Что скажете на это?