Биллинг 2.0 – какие события генерирует? 2.X

Как узнавать моменты завершения операций биллинга?

 
Посетитель
small user social cms
Сообщений: 29
API компонента Биллинг прописано неплохо. Спасибо разработчикам!
Но возникают задачи, которые требуют информирования сторонних компонентов о состоянии операций биллинга. Вот примеры:

▷ За реальные деньги куплена валюта сайта и внесена на счёт пользователя.
▷ Пользователь потратил "баллы" на покупку услуги или цифрового товара.
Торгующий компонент должен передать информацию об этом событии, например, в кассовый сервис или сделать какие-то другие действия, которые требуются именно в этот момент и с этим заказом.

По логике CMS, компонент Биллинг должен известить о завершении этого события другие компоненты.
Однако, ни в документации, ни в менеджере событий таких событий не обнаружилось.
Как слушатель, Биллинг обладает огромными ушами — список в его манифесте один из самых развесистых.
Но генерирует ли Биллинг события?

R2 рекомендует узнавать это нехитрым поиском в папке компонента:
http://docs.instantcms.ru/dev/controllers/hooks:
Чтобы узнать какие события генерирует интересующий вас компонент – просто сделайте поиск строки cmsEventsManager::hook или cmsEventsManager::hookAll по всем файлам внутри папки данного компонента.

Увы, даже слова «hook» вы таким образом не обнаружите в папках Биллинга — большая часть компонента закрыта наглухо, а в открытом коде этого нет. То, что этот компонент должен быть закрыт — сомнений нет.
Но как же узнавать о статусе операций?
Редактировалось: 1 раз (Последний: 23 января 2018 в 19:16)
Сергей-Водолей
Посетитель
small user social cms
Медаль
Сообщений: 996
Aquarius:
Но как же узнавать о статусе операций?

Писать R2 и узнавать.
Самые дешевые и быстрые VPS | Выгодный перенос доменов
Реклама
cms
Посетитель
small user social cms
Сообщений: 29
Вот я и написал, Андрей! smile
Надеюсь, здесь, для большого числа разработчиков, R2 будет больше мотивации отвечать, чем по-отдельности, каждому в приватном общении.
Редактировалось: 1 раз (Последний: 23 января 2018 в 19:14)
Сергей-Водолей
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3090
Биллинг 2.0 – какие события генерирует?


лучше все таки на почту) там быстрее ответ будет
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 244
Когда-то отлавливал возможные события в методе hook класса cmsEventsManager, и насколько помню не обнаружил событий от биллинга. Было это давно, возможно что-то изменилось
Разработка сайтов под ключ. Разработка дополнений. | skype: maga-ingdesign | email: [email protected] | Отзывы | Мой хостинг-провайдер | Магомед
Посетитель
small user social cms
Сообщений: 29
Поразбиравшись пару дней, уточняю ситуацию и вопрос.
Судя по документации, мы перед действием, активируемым нашим контроллером, должны запросить баланс покупателя:
http://docs.instantcms.ru/manual/components/billing/api/actions:
Код PHP:
  1. $billing->checkBalanceForAction('jobs', 'add_vacancy');
Если средств не хватит, пользователь будет сразу перенаправлен на страницу оплаты. После оплаты он будет возвращен к форме, которую собирался заполнить.
Если это наш контроллер ведёт пользователя к покупке и пользователь (раньше или во время checkBalanceForAction) внёс сумму, то, получив обратно управление от Биллинга («...возвращён к форме...»), наш код может быть уверен, что "баллы" сайта куплены и средств достаточно.
Соответственно, если наша форма тоже будет заполнена и успешно отправлена, можно из этого делать выводы, например, оформлять чек на покупку, пересылать его в кассовый сервис или ОФД (оператору фискальных данных) и т.п. Получается, здесь и не нужно событие.

Но вот факт внесения (и зачисления) живых денег в банк (например, если пользователь его активировал на своей вкладке "Баланс"), увы, остаётся известным только Биллингу, который получает эти сведения от платёжной системы.
Процедура ожидания и получения ответа защищена, поэтому мы не можем ни прочитать, ни вставить в неё код подвешивания информации на соответствующий hook.
Редактировалось: 2 раз (Последний: 25 января 2018 в 17:21)
Сергей-Водолей
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.