Payments — модуль для "Сборка "Фриланс-биржа" - реализация платёжного функционала для сайта биржи услуг и фриланса на CMF Cotonti.
Система платежей - многофункциональный, но достаточно простой раздел сайта, если знакомство с ним начать с подразделов. Далее по тексту в статье и на страницах сайта систему платежей будем называть: «личный баланс», «личный счет», «баланс пользователя».
Баланс пользователя (личный счет) в личном кабинете исполнителя и заказчика, разумеется доступен только зарегистрированному и авторизованному участнику сервиса или торговой площадки.
Регистрация является бесплатной, простой, и не требует каких-то специальных условий.
Система платежей сайта позволяет:
- пополнить свой личный счет и мгновенно оплачивать с него платные услуги сервиса.
- при наличии средств на балансе заказчика, мгновенно оплачивать услуги экспертов, по которым доступен онлайн платеж.
- резервировать средства по защищенной сделке, когда заказчик нанимает исполнителя для выполнения работы.
- другие операции платежного или расчетного характера, которые будут доступны пользователю только после пополнения баланса.
- выводить средства с личного счета на электронные кошельки, банковские карты и расчетные счета банков по заявке.
1. История операций.
В этом разделе в виде таблицы представлена вся информация по поступлению и расходу средств на балансе пользователя.
Каждая операция имеет:
- уникальный идентификатор операции на весь сайт, - это номер или ID.
- Дата и время проведения операции.
- Описание, - название услуги, например «Пополнение счета», «Выплата по заказу № ХХ....», «Покупка рекламного места», «Вывод со счета по заявке» и т.д.
- Тип операции, то есть это расход или поступление средств, которые представлены в виде значков «-» или «+».
- Сумма по операции, то есть количество средств в валюте сайта.
Для того чтобы на сайте организовать платные услуги и внутренние счета пользователей вам понадобится платежный модуль Payments. В состав этого модуля входит система внутренних счетов пользователей и собственное API для организации операций со счетами, пополнение, переводы между пользователями или оплата каких-либо определенных услуг, например для приема оплаты за какие-либо платные услуги.
Для пополнения счета необходимо также установить так называемые платежные плагины - это плагины для подключения платежных систем, с помощью которых осуществляется прием оплаты от пользователей.
Кроме того в каталоге приложений можно также найти дополнительные плагины для подключения других платежных систем.
Особенностью платежного модуля является то, что при определенных навыках в веб-программировании можно создавать всевозможные платные сервисы. Платные услуги при этом создаются в виде отдельных плагинов, которые в своем коде используют API основного модуля Payments.
Что касается валюты сайта, то здесь все просто. По-умолчанию единица валюты называется "руб.". Но если вам необходимо использовать другое название валюты, то в настройках модуля можно изменить это название на свое.
Последние обновления в платежных плагинах позволяют настроить каждый платежный плагин под свою валюту и соотнести ее с внутренней валютой сайта. Для этого в настройках плагина появился еще один параметр "Соотношение суммы к валюте сайта", который позволяет установить соотношение суммы оплаты в платежном плагине к общей валюте сайта.
Например, на вашем сайте валюта называется "монета", и допустим 1 монета = 1 рублю. Тогда если ваши платежные плагины настроены на рубли, то соотношение должно быть равно 1. То есть в данном случает валюта сайта эквивалентна валюте платежных плагинов.
Другой случай: Ваш платежный плагин настроен на прием в USD, тогда в настройках этого плагина нужно указать соотношение 0.0333, чтобы при оплате через этот плагин сумма к оплате конвертировалась с учетом этого коэффициента. Допустим сумма к оплате 100 монет, тогда плагин сообщит платежной системе сумму к оплате в USD = 100*0.0333 = 3.33 USD.
Валюта сайта и другие опции настроек модуля заполняются по своему усмотрению в Панели Управления (в Админке)
[caption id="attachment_612" align="aligncenter" width="640"]
![Payments — модуль для "Сборка "Фриланс-биржа"]()
Payments — модуль для "Сборка "Фриланс-биржа"[/caption]
Платежный модуль Payments позволяет развернуть на сайте фриланс биржи под управлением COTONTI полноценную систему онлайн оплаты за товары или услуги, с внутренними балансными счетами пользователей и системой пополнения счетов через платежные системы, например:
— PayPal
— Free-kassa
— Payeer
— LiqPay (ПриватБанк)
— Интеркасса
— WebMoney
— Robokassa
Платежные системы подключаются к модулю через специальные платежные плагины, что позволяет расширять список платежных систем путем установки соответствующих плагинов.
Функционал платёжного модуля Payments позволяет выводить со счета средства по заявке от пользователя, а также переводы между пользователями.
Можно также установить размер комиссии за вывод со счета и за перевод другому пользователю. Причем также можно указать каким образом взимается комиссия при переводе другому пользователю (с отправителя или с получателя).
В состав модуля уже входят плагины для подключения платежных систем: Webmoney, Robokassa, Interkassa.
Чтобы в шапке сайта разместить ссылку на счет пользователя нужно добавить следующий код в header.tpl:
<!— IF {PHP.cfg.payments.balance_enabled} —>
<a href=»{HEADER_USER_BALANCE_URL}»>{PHP.L.payments_mybalance}: {HEADER_USER_BALANCE|number_format($this, ‘2’, ‘.’, ‘ ‘)} {PHP.cfg.payments.valuta}</a>
<!— ENDIF —>
1.1. Создание услуги и переход к ее оплате осуществляется с помощью функции
cot_payments_create_order($area = ‘balance’, $summ, $options)
где:
area — идентификатор услуги (уникальный код вашей услуги, например: ‘balance’ — встроенная услуга пополнения счета);
summ — стоимость услуги к оплате;
options — массив дополнительных опций услуги, которые фиксируются в базе данный (в информации о счете на оплату).
Это может быть дополнительный идентификатор услуги ($options[‘code’] = 21232;),
название услуги ($options[‘desc’] = ‘Оплата услуги Х’;)
или срок действия услуги ($options[‘time’] = 8600;).
Кастомные опции необходимо создавать дополнительно в виде дополнительных полей в таблице cot_payments.
Также в последнем обновлении была добавлена возможность указывать ссылку для редиректа при успешной оплате:
$options[‘redirect’] = $cfg[‘mainurl’].’/’.cot_url(‘payments’, ‘m=balance’, », true);
cot_payments_create_order($area = ‘balance’, $summ, $options);
1.2. Чтобы узнать баланс счета пользователя можно воспользоваться функцией
cot_payments_getuserbalance($userid)
где:
userid — id-пользователя.
Другие возможности API вы можете посмотреть в файле modules/payments/inc/payments.functions.php.
Функциональная схема работы модуля:
Функциональная схема
Можете использовать данный модуль для разработки собственных приложений. Документация по внутреннему API данного модуля и принципы разработки плагинов (для подключения платежных систем и создания платных услуг) на данный момент находятся в разработке.
Структура шаблона payments.balance.tpl
<!-- BEGIN: BILLINGFORM -->
форма пополнения личного баланса
<!-- END: BILLINGFORM -->
<!-- BEGIN: PAYOUTS -->
заявки на вывод средств на эл. кошелек
<!-- END: PAYOUTS -->
<!-- BEGIN: PAYOUTFORM -->
форма создания заявки на вывод средств на эл. кошелек
<!-- END: PAYOUTFORM -->
<!-- BEGIN: PAYOUTSCARD -->
заявки на вывод средств на карты банков
<!-- END: PAYOUTSCARD -->
<!-- BEGIN: PAYOUTCARDFORM -->
форма создания заявки на вывод средств на карты банков
<!-- END: PAYOUTCARDFORM -->
<!-- BEGIN: PAYOUTBANK -->
заявки на вывод средств на расчетный счет в банке
<!-- END: PAYOUTBANK -->
<!-- BEGIN: PAYOUTBANKFORM -->
форма создания заявки на вывод средств на расчетный счет в банке
<!-- END: PAYOUTBANKFORM -->
<!-- BEGIN: TRANSFERS -->
заявки перевод средств другому пользователю внутри сайта
<!-- END: TRANSFERS -->
<!-- BEGIN: TRANSFERFORM -->
форма создания заявки на перевод средств другому пользователю внутри сайта
<!-- END: TRANSFERFORM -->
<!-- BEGIN: HISTORY -->
история платежных операций по балансу пользователя
<!-- END: HISTORY -->
Справочная информация по основным возможностям личного счета, как пользоваться кошельком, пополнить для оплаты услуг. Как вывести средства на карту, расчетный счет в банке или электронный кошелек.