Payonline HCS. Модуль приема платежей для ЖКХ

    Предисловие: я не являюсь сотрудником платежной системы Payonline (наши заказчики выбрали эту платежную систему), поэтому не размещаю этот пост в хаб «Я пиарюсь». Цель данного поста — популяризация Drupal. Если хоть один человек воспользуется этим модулем, я буду считать свою миссию выполненной.

    Возможности модуля весьма прозаичны:

    1. Страница и блок с формой для ввода данных пользователя:

    • номер лицевого счета;
    • номер квартиры(опционально, для проверки правильности ввода номера лицевого счета);
    • сумма платежа;
    • сумма и тип страхования, сумма пени;

    Форма ввода платежа


    2. Администрирование модуля

    2.1 Просмотр платежей



    2.2 Просмотр/добавление/экспорт пачек оплаты



    2.3 Экспорт платежей за период



    2.3 Конфигурация модуля



    Немного о том, как работает модуль.


    • Если житель правильно указал номер лицевого счета, генерируется номер заказ(OrderID) и он переходит на страницу оплаты на сайте платежной системы;
    • Если платеж прошел успешно, платежная система на callbackUrl(http://адрес-вашего-сайта/payonline-hcs/confirm) отправляет запрос на подтверждение оплаты на вашем сайте.


    После подтверждения оплаты, администратор может из принятых платежей формировать пачки оплаты. В новую пачку оплаты попадают только платежи, ранее не попавшие в другие пачки. Такая возможность реализована для удобства экспорта платежей в ПО управляющей компании.

    Экспорт платежей из пачки и за определенный период(без привязки к определенной пачке) возможен, пока, только в формат CSV.

    Формат выгружаемого файла (столбцы):

    • id;
    • номер лс;
    • номер счета;
    • сумма платежа;
    • дата и время принятия платежа на сайте;
    • дата и время принятия платежа в платежной системе;
    • сумма страхования жилья;
    • сумма страхования гражданской ответственности;
    • сумма полной страховки;
    • сумма пени;
    • комиссия, взимаемая при платеже

    Проверка правильности ввода номера лицевого счета по номеру квартиры


    По умолчанию эта функция отключена в настройках.
    Перед тем как включать эту функцию необходимо заполнить справочник-соответствие номеров лицевых счетов номерам квартир. Иначе, если включена функция проверки и справочник будет пустой или в нем будет неполная база по всем лицевым счетам, тогда пользователю будет выдаваться ошибка, что номер лицевого счета указан неверно.
    Справочник заполняется с помощью специальной формы, расположенной в разделе «Конфигурация Payonline»->«Справочник с номерами квартир».
    На «вход» для заполнения справочника нужен текстовый файл с разделителями. Необходимая структура файла:
    "0505252";"1"
    

    где первое поле — номер лицевого счета, второе поле — номер квартиры.



    Не забудьте настроить права доступа к модулю. Вот образец правильной настройки прав доступа к модулю:


    Модуль находится под лицензий BSD. Исходный код на Github.

    Пожалуй все. Будут вопросы, задавайте в комментариях.

    P.S.
    За разработку этого модуля для нашего заказчика я взял 0 руб, с прицелом на то, чтобы поделиться им с сообществом. Я считаю хорошей практикой делится «наработками», если заказчику они достались бесплатно. Если же за разработку взимается n-я сумма, у меня рука не поднимается выкладывать это в открытый доступ. Да и заказчикам такой подход, я думаю, тоже не понравится.

    UPD от 27.01.2014
    Обновил модуль до версии 1.0.1. Список изменений:
    • добавлена страница со статистикой в административной части;
    • добавлена страница и блок с возможностью проверки статуса платежа;
    • небольшие изменения в структурах таблиц, переведены все строки;
    • в списке платежей для админа теперь указывается номер пачки оплаты, если он есть.

    UPD от 29.01.2014
    Обновил модуль до версии 1.0.2.
    UPD от 03.03.2014
    Обновил модуль до версии 1.0.3. Подробнее смотрите change_log.txt.
    UPD от 02.09.2014
    Сделал рефакторинг кода, убрал глобальные переменные.
    UPD от 26.10.2014
    Обновил модуль до версии 1.0.7.
    Теперь сумму комиссии можно не включать в общую сумму платежа.
    Добавил возможность вручную выбирать платежи для экспорта или добавления в пачку оплаты.
    Убрал некоторые ошибки, сделал рефакторинг кода.
    UPD от 20.03.2015
    Обновил до версии 1.0.7.1

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

    Нужно ли подобный модуль портировать для других платёжный систем?
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 10
      0
      Если хоть один человек воспользуется этим модулем, я буду считать свою миссию выполненной.

      Я бы не рискнула. Качество этого кода никуда не годится.

      с прицелом на то, чтобы поделиться им с сообществом. Я считаю хорошей практикой делится «наработками», если заказчику они достались бесплатно.

      Для этого есть общая база модулей на Drupal.org. Там начинающие Drupal-разработчики проходят через Drupal.org Project applications, где им дают ценные советы по разработке модулей, а команда Drupal Security мониторит уязвимости.

      Никто (друпалеры, битриксоиды или жумловоды), конечно, не против гитхаба, когда модуль действительно написан хорошо и модулю уже доверяют.
      Примеры:
      github.com/asmallwebfirm/scale_addressfield (маленький модуль-фикс)
      github.com/drush-ops/drush (большой проект с мощным комьюнити)
        0
        Чтобы не быть унылой комментаторшей:
        Готова поучаствовать в Code Review вашей заявки в Drupal.org Project applications. Опыт есть. И друзей позову :)

        Успехов в изучении Drupal!
          0
          Я бы не рискнула. Качество этого кода никуда не годится.

          Я люблю критику, она для меня как стимул к совершенствованию. Но хотелось бы подробностей, где именно я «налажал» и за что меня надо «ставить к стенке». Поделитесь опытом. Хотя бы пару примеров.

          Для этого есть общая база модулей на Drupal.org.

          Боюсь я лезть на Drupal.org. Уровень моего английского меня удручает, я с переводчиком позориться я не хочу. Выход на офф. сайт будет моей следующей ступенькой. Конечно, намного круче когда модуль можно будет установить с офф. сайта и получать обновления. А хочется делится уже здесь и сейчас.
          0
          Боюсь я лезть на Drupal.org

          не стоит, там очень дружественное сообщество и большинство не является носителями языка, это даже способ прокачаться
            0
            большинство не является носителями языка

            Хм, для меня это откровение. Если так, то попытаюсь внедриться :)
            0
            Обновил до версии 1.0.1
              0
              Обновил до версии 1.0.2
                0
                Обновил до версии 1.0.3
                  0
                  Обновил до версии 1.0.7 (см. UPD поста).
                    0
                    Обновил до версии 1.0.7.1

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

                    Самое читаемое