Серверная часть

В основе движка билинга лежит Framework Limb 3 ( http:/// ). В частности используются следующие его пакеты:

·  acl (управление правами доступа),

·  core (основные классы приложения),

·  filter_chain (управление порядок работы приложения),

·  fs (функции для работы с файловой системой),

·  log (ведение лога),

·  macro (шаблонизатор),

·  mail (рассылка почты),

·  net (обработка данных, полученных от пользователя и вывод результата),

·  session (управление сессиями).

Также используются пакеты, разработанные нами:

·  authorization (авторизация пользователей)

·  data_filter (фильтрация данных полученных от пользователя)

·  evaluator (вычислитель формул для тарифов)

·  lite (основные классы приложения, включающие небольшую ORM)

·  liveoperator (пакет билинга)

Для взаимодействия с базой данных используется паттерн Active record, потому классы моделей в основном наследуются от одного и того же класса – liteRecord. Данный класс является аналогом lmbActiveRecord из пакета active_record от Limb 3 и частично повторяет его функционал.

Платежные системы

 

Добавление платежной системы на примере системы платежей через банк:

1.  Необходимо придумать уникальное кодовое обозначение платежной системы, например bank.

2.  Добавить классы моделей в папку liveoperator/src/payment_system/bank/model/

3.  Добавить таблицу bank_receipt для хранения подробной информации о платеже.

4.  В папку liveoperator/src/controller/ добавить файл контролера платежной системы: liteBankPaymentSystemController. class. php.

Контролер используется для формирования платежей из панели пользователя. Может содержать следующие методы:

doPayment() – получение данных от пользователя и формирование платежа;

doPaymentData() – получение предварительной информации о платеже (e-mail пользователя, НДС);

doPayments() – получение списка платежей пользователя по данной платежной системе;

doViewPayment() – получение подробной информации о платеже, как правило, для печати.

5.  .Добавить файл роутинга liveoperator/routes/bank/routes. php. Данный файл предназначен для сопоставления путей с экшенами контроллера, а также для указания используемых шаблонов.

6.  Добавить необходимые шаблоны в папку liveoperator/templates/payment_system/bank/. Обязательно должен присутствовать шаблон loader. htpl. Он подключает необходимые js-скрипты для панели пользователя.

7.  В таблицу payment_system нужно в ручную добавить платежную систему, обязательно указав следующие поля: name (название системы), code (уникальный код платежной системы bank) и class (имя класса модели платежной системы BankPaymentSystem)

Клиентская часть

Клиентская часть написана с использованием javascript-библиотеки ExtJS ( http:// ).

Скрипты платежных систем обычно располагаются в папке liveoperator/shared/liveoperator/js/payment_systems/

Обязательно должна присутствовать панель LiveOperator. PaymentSystems. bank. Panels. Root (‘bank’ здесь – это уникальный код платежной системы). Эта панель будет отображаться после выбора пользователем платежной системы.

Платежные системы в панели оператора

В панели оператора имеется стандартный интерфейс управления платежными системами, и, возможно, менять там ни чего не придется.

Для интерфейса необходимо наличие шаблона квитанции. Он возвращается методом getTemplate() модели квитанции (BankReceipt::getTemplate()).

Также интерфейс ориентирован на подтверждение платежей оператором. Если этого не требуется, то сами платежи можно не создавать (не использовать таблицу payment) или создавать их уже подтвержденными. Могут быть и другие варианты.