Платежный модуль и валюта сайта. прием оплаты от пользователей, например Payeer, Unitpay, Enot, Robokassa, банковские и криптовалютные системы, а также другие.
Для того чтобы на сайте организовать платные услуги и внутренние счета пользователей вам понадобится платежный модуль Payments. В состав этого модуля входит система внутренних счетов пользователей и собственное API для организации операций со счетами, пополнение, переводы между пользователями или оплата каких-либо определенных услуг, например для приема оплаты за каие-либо платные услуги.
Для пополнения счета необходимо также установить так называемые платежные плагины - это плагины для подключения платежных систем, с помощью которых осуществляется прием оплаты от пользователей, например Payeer, Unitpay, Enot, Robokassa, банковские и криптовалютные системы, а также другие.
Особенностью платежного модуля является то, что при определенных навыках в веб-программировании можно создавать всевозможные платные сервисы. Платные услуги при этом создаются в виде отдельных плагинов, которые в своем коде используют API основного модуля Payments.
Что касается валюты сайта, то здесь все просто. По-умолчанию единица валюты называется "руб.". Но если вам необходимо использовать другое название валюты, то в настройках модуля можно изменить это название на свое.
Последние обновления в платежных плагинах позоляют настроить каждый платежный плагин под свою валюту и соотнести ее с внутренней валютой сайта. Для этого в настройках плагина появился еще один параметр "Соотношение суммы к валюте сайта", который позволяет установить соотношение суммы оплаты в платежном плагине к общей валюте сайта.
Например, на вашем сайте валюта называется "монета", и допустим 1 монета = 1 рублю. Тогда если ваши платежные плагины настроены на рубли, то соотношение должно быть равно 1. То есть в данном случает валюта сайта эквивалентна валюте платежных плагинов.
Другой случай: Ваш платежный плагин настроен на прием в USD, тогда в настройках этого плагина нужно указать соотношение 0.0333, чтобы при оплаче через этот плагин сумма к оплате конвертировалась с учетом этого коэффициента. Допустим сумма к оплате 100 монет, тогда плагин сообщит платежной системе сумму к оплате в USD = 100*0.0333 = 3.33 USD.
Платежный модуль Payments позволяет развернуть на сайте полноценную систему оплаты с внутренними счетами пользователей и системой пополнения счетов через платежные системы.
Недавно функционал данного модуля был немного усовершенствован и теперь в его состав входит возможность вывода со счета по заявке от пользователя, а также переводы между пользователями. Можно также установить размер комиссии за вывод со счета и за перевод другому пользователю. Причем также можно указать каким образом взимается комиссия при переводе другому пользователю (с отправителя или с получателя).
Платежные системы подключаются к модулю через специальные платежные плагины, что позволяет расширять список платежных систем путем установки соответствующих плагинов.
Чтобы в шапке сайта разместить ссылку на счет пользователя нужно добавить следующий код в 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.
примечание, - именна функций в 2025 году могут быть другие. смотрите payments.functions.php