Всем привет.
Кто меня знает, те в курсе, что я еще год назад запустил свой проект по недвижимости http://best-house.org Кто меня не знает, то меня зовут Данилевский Кирилл. Как я создавал проект - статья на Хабре
Когда количество объявлений на портале превысило 50 тыс., то стало понятно, что пора что-то зарабатывать на продвижении объявлений. И покопавшись в сети, я понял, что решение мне придется писать самостоятельно.
Какие требования я ставил. Нужна полностью автоматизированная система по приему платежей, которая бы работала самостоятельно без моего вмешательства. Система должна быть очень мощной и гибкой, которая будет позволять подключить без проблем, абсолютно любой платежный процессор, который есть в мире.
Можно зарабатывать, как на авторе объявления, например за рекламу его объекта недвижимости, так и на пользователе, например за открытие доступа к дополнительному контенту.
Платежная система должна иметь возможность работать, как с простым платежом, так и с датой, на протяжении которой этот платеж действителен. Например, помещение в рекламный VIP блок на одну неделю.
Далее, мне нужно было, чтобы я смог выбрать в созданном платеже тип контента, и платежная форма автоматически появилась бы в шаблоне ноды. Если платеж настроен для автора, то форму увидит только автор. Если платеж настроен для пользователя, то форму увидят все авторизированные пользователи. При этом в самой ноде, при ее редактировании, появится дополнительно поле с ценой и активацией платежа.
Когда платеж произведен, то форма для такого пользователя не должна больше отображаться. Пользователь может кликнуть на кнопку информации на форме платежа и получить всю информацию о назначении платежа. Это должна быть настраиваемая функция. А после оплаты пользователю должен быть показан текст благодарности. Тоже настраиваемый. А еще нужен свой хук, который отработает сразу после успешного платежа. Он может понадобится для любых дополнительных действий, например автоматической высылке сообщения или файла на почту.
В шаблоне или в своем модуле можно было бы легко произвести проверку по пользователю и ноде, оплатил ли этот пользователь за эту ноду. Также нужна система тестирования платежей и платежных систем. Чтобы можно было откатать в бою новый платежный процессор, но не играясь реальными деньгами. В общем, нужна система песочницы для платежей.
И нужна простая, но исчерпывающая статистика по платежам, с возможностью экспорта в файл с фильтрацией по датам.
Такой модуль я успешно создал и в течении года успешно откатал его на продакшене. Модуль называется itp_payment. Фактически - это целый комплекс в одном модуле, для осуществления продаж контента. Я именно задумывал его для продажи контента. Хотя можно продавать и товары и услуги. Модуль гибкий и его легко заточить под свои конкретные нужды.
В придачу к этому модулю, я создал второй модуль - itp_vip_blocks, который отлавливает платежи, которые были оплачены, и создает для конкретного типа контента свои VIP блоки, куда помещает оплаченные ноды. Как только будет совершен платеж, в разделе блоков появится новый блок с определенным типом контента. Его нужно настроить, где отображать.
Есть ряд моментов, которые нужно знать.
Для модуля itp_payment:
ItpPaymentController::CheckExistPaymentUser($uid, $nid) - это статический метод для определения наличия активного платежа пользователем uid за ноду nid
ItpPaymentController::GetExistAllPaidPayment() - это статический метод для получения всех активных платежей
hook_after_payment($variables) - этот хук отработает сразу же, как только будет осуществлен успешный платеж
Для модуля itp_vip_blocks:
Здесь нужно понимать, что этот модуль я делал конкретно для себя, а не для сообщества. Поэтому не делал графического интерфейса. Для его настройки придется немного поменять код в функции itp_vip_blocks_create_vip_node($nid):
в переменной $image в ключе 'style_name' => 'thumbnail' вы можете поменять стиль на свой.
чуть ниже есть закомментированный блок - это мои поля там используются. Вы должны указать свои поля из переменной $node_view. При этом переменная $node_markup должна суммироваться (конкатенация). То есть $node_markup .= "ваши данные";
В данный момент в itp_payment модуле есть два платежных процессора: PayPal и LiqPay. Второй - это решение от Приват Банка. Позволяет принимать деньги с пластиковых карт, терминалов и т.д.
Посмотреть, как выглядят VIP блоки можно здесь или здесь.
Буду ли я дальше развивать данные модули. Скорее всего буду, но только для седьмой версии. В планах переделать их под Laravel 5.
Ссылки на GitHub:
itp_payment
itp_vip_blocks
Кто будет в порыве щедрой благодарности, тот может помочь с ссылочками в инете на мой портал. Всем удачи и высоких заработков.
Быстро со мной связаться можно с моего портала недвижимости http://best-house.org