ТЗ

ТЗ


Сумма перевода - Сумма, который клиент планирует перевести

Сумма списания - Сумма, которая будет списана с кошелька отправителя = сумма перевода+все доп.издержки в виде комиссии и маржи

Сумма зачисления - Сумма, которую клиент получит на другой кошелёк

Кошелёк списания - Кошелёк платёжной системы, указываемый клиентом, с которого будут списаны денежные средства

Кошелёк зачисления - Кошелёк платёжной системы, указываемый клиентом, на который поступают денежные средства

ПС - Платёжная система: Яндекс.Деньги, киви, вебмани и т.д.

БД - База данных

Обменник


Подключение разных ПС. Первоначально стоит вопрос - можно ли создать единый шаблон для каждой последующей ПС или из-за собственных особенностей это невозможно и каждую новую нужно подключать индивидуально? Если возможно то создаём шаблон, если нет, то подключаем их все по мере необходимости. На первом этапе нужны следующие системы: Яндекс, Киви, Вебмани. С их внедрением сразу запускаем сервер в работу, т.е. головной сайт должен быть уже готов (допускаю запуск на первую неделю на тестовом контуре). Далее необходимо добавить ввод/вывод на карты visa\mc и интернет банки. Первоначально важны банки: Сбербанк, Тинькофф, ПСБ, АльфаБанк, ВТБ24. Далее добавляем другие ПС: Наличные деньги, Рапида, Rbkmoney, Payeer, Scrill, Neteller, AdvancedCash и в самом конце обмен криптовалют.

Наличие кнопки реверса обмена, при нажатии которой направления обмена меняются местами, при этом введённые суммы и другие значения - почта, телефон и т.д. сохраняются

При переводе, для клиента должна быть возможность ввода либо суммы перевода, либо суммы списания, либо суммы зачисления.

Клиент должен видеть все комиссии которые он платит, как в виде абсолютного, так и в виде относительного значения. Расписывать структуры комиссий не надо. Все значения должны быть видны сразу, даже без заполнения всех остальных полей.

Наличие опции двойного обмена, т.е. обмен через транзитную валюту.

Двойной обмен должен автоматически проверяться всегда и при наличии более выгодного варианта его надо предлагать клиенту - очень важно!

Обмен валюты на саму себя не должен отображаться.

При вводе любых данных, они в обязательном порядке проверяются на соответствие типов, соответствие маске допустимых значений, выход за допустимые границы, корректность кошелька списания и зачисления

При вводе некорректных данных, перевод не осуществляется и необходимо сообщить клиенту, где именно он ввёл неправильные значения.

Сайт использует куки и предупреждает об этом, чтобы при повторном посещении сайта, даже без регистрации ЛК уже были введены данные которые вводились прошлый раз.

Доступные для клиента поля ввода: Сумма перевода, сумма списания, сумма зачисления, кошелёк списания, кошелёк зачисления, телефон и почта. Также должно быть поле ввода купона(промо-кода) для дополнительной скидки на комиссии, ввод капчи и поле для ввода проверочного смс.

При регистрации в ЛК и введения почты и телефона, эти данные должны вводиться в соответствующие поля автоматически, с возможностью их редактирования. При вводе новых значений задать вопрос клиенту о перезаписи старых данных, новыми.

Функция ожидания нужного курса - Возможность оповещения клиента при достижении необходимого курса выбранным способом: почта, push, смс.

Предусмотреть возможность быстрой регистрации посредством соц.сетей и Гос.Услуг.

У каждой заявки должно быть время жизни, по истечении которого она автоматически отменяется

На обменнике должны быть видны курсы фиатных денег. Отображается наш курс покупки и продажи евро/доллара/фунта за рубли и средний банковский курс покупки/продажи. Наш курс выгоднее банковского - это должно быть видно и понятно клиенту.

Функция заморозки курса - на сайте должна быть информация о возможной заморозке курса обмена фиатных денег. Может сделать кнопку под отображением пункта 16 где будет вопрос - заморозить курс ?

Пока с этим пунктом надо быть аккуратно т.к. необходимо получение банковской лицензии и возможны проблемы с вебмани. Нужна возможность этот пункт включить и отключить без нарушения функционирования и дизайна сайта.

Созданы все служебные страниц


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

Предоставить доступ сайту plateginfo.com к агрегированным данным.


ы: 404 и т.д.

При обмене использовать капчу


Агрегатор


Парсим XML файлы обменников. Они в открытом доступе и в основном все одного формата.

Из собранных данных формируем биржевой стакан, где по уровням представлены не только лучшие курсы, но и лимиты, поставщики ликвидности, доступность сайта, тип обмена и возможно ещё какая либо дополнительная информация.

Данная информация нужна как для собственной работы, так и для экспорта сайтам агрегаторам, типа BestChange.ru т.е. должен быть интерфейс доступа к этим данным извне.



Роботы

На сервере работаю боты. Они и их функционал недоступны для клиентов, но все необходимые настройки ботов вынесены в cms и доступны для администратора

Основной функционал ботов это контроль и поддержание всей системы в рабочем состоянии.

Функции ботов:

Бот следит за собственными лимитами. Если где то денег становится мало, то бот изменяет курс обмена так, чтобы в этом направлении было выгоднее менять через нас. К примеру стало мало яндекса, но скопилось много киви. Условно назовём киви плохой валютой - у нас её много и она нам не нужна, а яндекс - хорошей. Тогда курс обмена плохой валюты на хорошую улучшается для клиента, а обратный курс обмена наоборот ухудшается для клиента. При этом изменяется не только прямой курс хороший-плохой, но и остальные смежные курсы где присутствует одна из этих валют. Там просто изменения курса обмена менее значительны. Таким образом необходимо иметь таблицу весов каждой валюты, на основании которой и будут формироваться различные курсы.

п.с: таблица весов не единственный фактор влияющий на динамику курсов. При изменении курсов бот также смотрит на таблицу свойств данной валюты и ПС, в которой указаны минимально возможные значения курсов, различные комиссии и т.д. Также бот следит за текущими курсами обмена валют на сайте ЦБ, бирже, tradingview и оперируя всеми данными устанавливает итоговый курс обмена.

Таблица весов валют в любой момент должна быть доступна для просмотра через cms.

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

Бот следит за арбитражными ситуациями и если они появляются, то проводит самостоятельный обмен или сообщает администратору. Арбитраж ищется не только ASK<BID но и через тройки





Виджеты

Один из вариантов доступа к нашим услугам, это виджеты. Каждый сайт может встроить их себе на различные страницы, путём копирования автоматически сгенерированного кода из своего личного кабинета.

Необходимо в ЛК клиента дать возможность выбора различных ПС, оформления, цветов и размеров для автогенерации кода для вставки виджета.

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

Идея, вид, возможности виджетов пока в стадии разработки. Они должны уметь делать всё что делает основной сервис, при этом крайне желательно без лишнего открытия нашего сайта.



Сайт



Любой текст на сайте в отдельный файл или БД. Нужно в будущем для лёгкого перевода сайта на другие языки. Отсутствие текста в html коде может негативно сказаться на СЕО продвижении, но у нас не информационный ресурс и СЕО для нас вторично. Хотя конечно всё, что не противоречит логике нашей работы мы в любом случае используем, заполняем все необходимые теги и т.д.

Можно сразу предусмотреть форму для выбора языка, но пока сайт только на одном языке сделать эту форму неактивной или невидимой.

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



CMS


CMS должна обеспечить администратору сайта возможность полного управления сайтом

Предусмотреть возможность переключения режима работы обменника: ручной/автоматический/полуавтоматический.

На главной странице сайта, должен отображаться текущий режим работы обменника

Включение/выключение полностью ПС, отдельно взятых направлений обмена. и всего сайта целиком

Редактирование и создание новосте


й и различных акций

Возможность личной переписки с пользователем сайта

У пользователя должна быть возможность видеть историю своих операций .При регистрации ЛК - доступна вся сохранённая история, без ЛК - то что сохранилось в куки.

Курсы обмена могут быть дискретными - поддерживать эту возможность. т.е. меняем 100 баксов один курс, меняем 1000 баксов - другой.

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

У каждой заявки должен быть свой уникальный ID

В используемой БД, по каждой ПС и по каждому возможному направлению обмена должны быть данные об абсолютных и относительных комиссиях, их минимальном и максимальном значении. Комиссии должны быть прописаны и на ввод и на вывод.

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

Получение курса обмена евро/доллара/рубля/фунта с сайтов https://ru.tradingview.com, http://www.moex.com, http://www.cbr.ru

Используем TOD контракты. т.е. USDRUB_TOD при отображении курса до 15-00 по москве, после используем контракты TOM, т.е. USDRUB_TOM.

Статистика


Сбор статистики очень важный момент, необходимо собирать всё, что только возможно. В будущем, на основе этих данных, будут не только приниматься различные управленческие решения, но и проводиться анализ ситуации, отслеживаться различные тренды, создаваться аналитические отчёты и прогнозы.

Также актуальная информация необходима для работы внутренних ботов, которые автоматически будут регулировать доступные лимиты, курсы обмена и, при возможности, совершать арбитражные сделки.

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

Аналогичные данные мы собираем и у сторонних сервисов, которые будут подключаться к нам, но при подключении к нам мы уже будем знать и о совершённых обменах.

Для сбора и хранения этих данных необходимо вести отдельную БД

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

Статистические данные бекапятся ежедневно, автоматически.

Таблица данных по каждому обменнику/клиенту содержит примерно следующие поля:

Название обменника/клиента

Урл сайта

Время снятия слепка

Список котируемых валют.

Текущая котировка по каждому направлению обмена

Текущий лимит по каждому направлению.

Доступность сайта в текущий момент

Возможность совершения автоматического обмена через бота

Совершённый обмен, если это клиент, а не сторонний обменник (время, валюта из, валюта в, текущий курс, текущий обратный курс, объём обмена, лимит до, лимит после)

Поле комментария - вероятно чаще всего будет пустым.

Вопрос с синхронизацией данных решить в момент их сбора, а не в последующем. Данный процесс можно отлично распараллелить и повесить на видеокарту - это если запускать на сервере с видео (наиболее актуально использовать для этого OpenCL) либо разбить по процессам. Это более универсальное решение.


Безопасность


Безопасность - один из самых важных пунктов!

Необходимо вести внутренний лог всех операций и хранить данные без ограничения по времени.

Автоматический бекап данных раз в сутки.

Данный лог можно попробовать по ключу соединить со сбором статистики, чтобы не писать повторно одно и тоже или как вариант просто в статистику писать и необходимые для безопасности данные.

Важно кто совершил обмен, когда, с какого IP, откуда клиент пришёл и т.д. То есть максимум информации которая может быть передана в последующем в правоохранительные органы для поиска и отслеживания злоумышленников.

Везде, где существуют формы ввода для клиентов, включая адресную строку и все используемые в системе URL прописать “защиту от дураков” По максимуму использовать маски ввода, которые будут о


TradingView

Бесплатные графики акций, котировки и торговые идеи

Котировки, бесплатные графики в реальном времени и экспертные мнения. Сообщество инвесторов и трейдеров на рынке Форекс, акций и фьючерсов на TradingView!


граничивать передаваемые данные только необходимым шаблоном.

Необходима система аварийной автоматической приостановки сервиса и сообщения о подозрениях администратору. Критерии остановки должны быть расширяемыми и доступны через CMS. Сумма обмена - один из первых критериев повышенного внимания к обмену

Через CMS должны быть доступны ограничения по меняемым лимитам на каждую транзакцию, в зависимости от времени суток.

Предусмотреть возможность переключения режима работы обменника:автоматический/полуавтоматический.


Лимиты


Существует следующие виды лимитов:

Первый лимит или лимит денежных средств в ПС. Допустим клиент хочет сделать обмен с WMZ на киви. Он нам пересылает WMZ на вебмани кошелёк, мы со своего киви кошелька пересылаем ему деньги на его киви. Т.е. мы не занимаемся переводом денег между ПС и при обмене нам важен только тот лимит, где мы отдаём деньги, в случае примера - лимит на киви. Переводы, которые превышают лимиты на кошельках с которых мы отдаём деньги - не принимаем. Самый главный вид лимита.

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

Третий лимит или контрольный лимит - устанавливается для каждого направления обмена отдельно (не для всей ПС, а для направления обмена!) Устанавливается только вручную в админке. Необходима возможность массовой установки. Нужен только для контроля админом массового перелива денег с одного кошелька в другой. Используется для контроля. При достижении указанных значений, админу отсылается сообщение о его превышении и всё. Ограничить частоту отправки не более 1 раз в заданный интервал времени по каждой ПС.


Общие рекомендации


При написании сайта по максимуму использовать возможности ООП (абстракции, шаблоны, наследование и т.д) чтобы не приходилось менять типовые сущности многократно, в разных местах, если изначально их можно было вынести в шаблоны.

Возможно нужно будет завести аккаунт и зарегистрировать его на всех актуальных обменниках. (моя задача)

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

Курс обмена выставляется следующим образом - если нет конвертации то устанавливается стартовый курс обмена - 1:1, если конвертация валют есть то на основании текущего биржевого курса (берём с сайты цб и tradingview). Далее стартовый курс изменяется 2 раза. Сначала к нему добавляются все постоянные и фиксированные комиссии со стороны ПС ( к примеру 0.8% к обмену на вебмани есть всегда) и потом добавляется желаемая маржа.

Все фиксированные комиссии, существующие в рамках ПС, должны храниться в отдельной БД и доступны к изменению через CMS



Итого

В результате работ, на выходе должны иметь следующее:

Сервис, который обеспечивает обмен и агрегацию электронных валют и имеет интерфейсы доступа. Данный сервис может быть расположен в облаке или на сервере.

Удобная CMS для управления сервисом, сбора статистики, контроля партнёров и ботов.

Сайт, наподобие бестчендж, на котором видны агрегированные данные и также есть возможность своего обмена.

Описание работы сервисов. Некий tutorial.

Пару страниц, на отдельных доменах, для проведения обмена только между определенными ПС. То есть страница для обмена между яндекс и киви и т.д. Делать ли обратный обмен на этой же странице пока вопрос открытый.

Набор виджетов, для встраивания их на любые заинтересованные сайты для проведения обмена. В данном случае сторонние сайты работают как партнёры.

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


Report Page