ТЗ / TODO --- Биржа 1. Выставить монеты за продажу (указывается сумма монет, цена, и выбирается платежка, и номер счета куда переводить оплату) - Монеты резервируются на счету - Покупатель видит сумму монет, цену, сумму итого(+ коммиссия?) и платежку. и кнопку оплатить - При оплате принимается платеж на наш счет. и после оплаты покупателю переводятся его монеты а продавцу через апи его деньги в выбранной платежке. - (учесть возможность ошибок и сохранять заявку не до обработанной если платежи где-то застряли чтобы можно было вручную закончить) 2. Запросить покупку монет (Указывается сумма монет, цена, выбирается платежка) при сохранении заявки предлагается ее оплатить (+ коммиссия) - создавший заявку оплачивает по кнопке на нас счет и эта сумма резервируется за этой заявкой. - Пользователь желающий продать монеты по этой заявке, нажимает кнопку продать, вводит номер счета куда ему переводить оплату в указаной платежке, с него снимаются монеты и ему через апи делается перевод с зарезервированных средств. Системные заявки на продажу создаются через админку сумма в них показывается автоматически с баланса указаного в заявке счета, или с выбранной платежки за вычетом системного резерва и зарезервированного в заявках. https://exchanger.money/emoney/home - хороший пример --- документация https://docs.opendatabot.com/v3/#/ Вот полный перечень компаний: РФ — https://opendatabot.com/api/v3/companies/ruFounders?apiKey=VHAZ4FMCv2bR&limit=10000&offset=0 И https://opendatabot.com/api/v3/companies/ruFounders?apiKey=VHAZ4FMCv2bR&limit=10000&offset=10000 Бел — https://opendatabot.com/api/v3/companies/byFounders?apiKey=VHAZ4FMCv2bR&limit=4000&offset=0 инфо про любую компанию https://opendatabot.com/api/v3/full-company/14360570?apiKey=** - где 14360570 код ЄДРПОУ (в примере приватбанк) Другие апи ( /public/company/{code} - Інформація за кодом ЄДРПОУ (коротко - відкрита) /public/transport - Інформація про авто за номером (коротко - відкрита) --- Общий план/список доработок на будущее * Доработка хранения секретных ключей и подписи транзакций чтобы хранить их в базе и не увеличитьва размер файла кошелкьа - избавиться от немного глючной встроенной системы аккаунтов * Добавить возможность исопльзования внешних ключей, с аппаратных кошельков, подпись транзакций в апаратном кошельке и т.п. - Ledger, Trezor, KeepKey (видел какой-то скрипт работающий с ним по апи) - Есть еще несколько не подключаемых работающих как-то через ручной набор и т.п. * Доработки Магазина (список ниже) * Доработки для быстродействия, например внутренний кеш исходящих транзакций, входит в доработку по внешнему хранению секретных ключей. * Раздел сервисы - например пополнение балансов телефонов напрямую с кошелька (через апи), полный список еще нужно составлять, и по каждому сервису нужно отдельно разбираться как подключить и как использовать * Доработка раздела Биржа кредитов - Добавить чтобы предложения на выдачу кредитов были многоразовыми, с подтверждением каждого желающего получить кредит выдающим. в админке добавить списки кредитов пользователей, и возможности управлять ими, сейчас только сами пользователи их видят. * Включить наконец работу с СМС - уже несколько раз обговаривали но так и не активировали и т.п. * Регистрация через телеграм (можно и вайбер) - может дасть подтверждение телефона без СМС * Регистрация/вход через соцсети возможность входа одним/двумя кликами без ввода пароля. * Стоит запретить ввод/вывод без подтверждения мейла (и при смене менять только после подтверждения а до сменны соавлять старый) * Проверять ответы от почтовика (Письма отказы Например скодом "550-5.1.1 The email account that you tried to reach does not exist.") и требовать изменить почту тем у кого такая уже прописана, или если пытается с такой зарегистрироваться -- Для вебкошелька требуется доработать АПИ для приема оплаты чтобы можно было исопльзовать в проекте AdWork --- Доработать - Оплату АПИ - добавить возможность оплатить с бизнес аккаунта если он у пользователя включен - Оплату в магазине добавить возможность оплатить токенами (и с бизнес аккаунта если он есть у пользоавтеля) - В формах оплаты можно спрятать выбор токенов с нулевым балансом --- Раздел "Магазин" Этап 1. Просто список товаров которые можно купить без корзины, просто нажав кнопку купить и подтвердив 1.+ В аккаунте в разделе магазин сразу показан список товаров карточками, с картинкой, названием (можно еще с кратким описанием), ценой и кнопкой купить. 2.+ Вверху (справа, можно в шапке) ссылка "мои покупки" ведущая на одноименную вкладку в профиле. (Там простой таблицей все покупки, с названием, ценой миникартинкой, и датой покупки) 3.+ А админке раздел "Магазин" с двумя вкладками "Товары" и "Продажи" +В Товарах список товаров, с кнопками редактирования, удаления на странице редактирования форма где удобно мождно править все поля. +В Заказах список заказов, где можно изменить статус заказа, (или удалить если что). +Этап 2. Добавить Корзину возможность добавить в корзину несколько товаров и потом оплатить/купить их пачкой. (в заказах такие товары нужно обьединять и править статус пачкой) +Этап 3. Добавить к товарам больше полей, характеристики и категории (можно вложенные). + Категории показывать вверху списка товаров, со своими картинками с главной страницы раздела. Характеристики отобрать какие показыватьс разу на карточке товара + а какие на странице товара, Добавляется страница товара, с полным списком категорий, Полным описанием, дополнительными фото и т.п. Этап 4. Добавить фильтрация по полям (характеристикам) товара Этап 5. Добавить возможность оставлять товарам отзывы (оценки и комментарии), с возможностью модератора отвечать на отзывы Этап 6. Добавить дополнительные списки товаров: "Избранное", "Сраврение" --- Доработка для ускорения работы. 1. получение балансов: - Добавить поле в базу и сохранять туда сумму и время обновления. - Скрипт обновления балансов обновлять те где времени прошло больше 5 минут (и изменилась сумма иначе только обновлять время). - На фронтенде напрямуюб не запрашивать баланс. 2. При отправке: - Проверять остаток баланса по записи в базе (и очереди еще не отправленных переводов). - Ставить перевод в внутреннюю очередь. - из очереди переводы сделать по крону и уже там делать проверку по реальному балансу и если надо обновлять его. - Рядом с историей транзакций (и/или на странице отправить) показать очередь переводов, и если отправка не удалась, помечать записи в очереди как не удачные, и в истории их не будет (со временем удалять чтобы не загромождать базу)