Модуль "Платежи" : версия 0.1

Идея

Создавая модуль "платежи" я придерживался следующих требований к модулю. Модуль должен:

  • быть автономен и ни от кого не должен зависеть;
  • содержать в себе все необходимое для обработки платежа;
  • содержать хотя бы небольшие гайды для работы с модулем и платежными системами;
  • содержать следующие платежные системы: webmoney, яндекс деньги.

В итоге в модуле было реализовано четыре модели: платежи, логи платежей, платежные системы, параметры платежных систем.

Платежи

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

Создание платежа

Для создания платежа можно воспользоваться виджетом payments.widgets.PaymentsFormWidget, в качестве входных параметров принимается amount(сумма) и description(описание). Результатом выполнения виджета будет кнопка, при нажатии на которую пользователь переходит на страницу /payment. На странице указаны все данные платежа и реализована возможность выбора платежной системы. После того как пользователь определился с платежной системой он переходит на /payment/, где указана инструкция о том как оплатить платеж с помощью данный платежной системы.

Обработка платежа

В процессе оплаты платежа платежные системы переходят на сайт пользователя для проверки,подтверждения платежа. Для такой обработки предусмотрена ссылка /payment/processing/. При переходе по которой определяется платеж и платежная система и в зависимости от платежной системы платеж обрабатывается соответствующим образом.

Логи платежей

Логи позволяют проследить за тем как платеж обрабатывался. Все операции с платежами записываются. Помимо описания в каждом логе присутствуют параметры запросов ($_GET, $_POST).

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

Платежные системы позволяют принимать средства от пользователей. Каждая платежная система обладает обязательным набором параметров (Код, Название, Статус) и специфическими параметрами (у каждой платежной системы свои). В модуле реализован просмотр и редактирование платежных систем. Создание платежных систем специально не предусмотрено, так как добавление платежной системы не ограничивается простым добавление записи в базу, так же необходимо реализовать компонент.

 

В версии 0.2 планируется реализовать прием платежей через платежную систему Яндекс Деньги.

 

Если у вас есть вопросы, то можете написать их на почту: apexwire@amylabs.ru