1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Любая версия Auto-donate [free-kassa.ru]

Тема в разделе 'PW Разработки', создана пользователем salitypw, 3 апр 2015.

  1. TopicStarter Overlay

    salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Собственно как видно с названия темы - ничего сверхъестественного , простенькая система автоматического приема платежей для PW
    на базе шлюза http://free-kassa.ru/

    1) Распаковываем архив.

    2) Открываем src/vendor/Mvcbox/Database/configs/database.conf.php и указываете ваши данные для подключения к базе:
    [​IMG]

    Правим конфиги:
    3) app/Models/Config/FreeKassa.php
    [​IMG]
    SHOP_ID - ID вашего магазина в системе free-kassa
    SECRET_WORD, SECRET_WORD_2, ACCESS_KEY - придумайте секретные значения.
    API_URL - оставить как есть

    4) app/Models/Config/Etc.php
    [​IMG]
    Думаю, что тут все понятно.

    5) Заливаем файлы на WEB сервер той серверной машины, на которой стоит сам игровой сервер.

    Далее открываем страницу: http://[IP or Host]/index.php/main/links/ и видим примерно такое:
    [​IMG]

    На этой странице сгенерированы данные для конфигурации вашего магазина:

    [​IMG]

    6) ВНИМАНИЕ!!! После того, как Вы закончили настройку - ОБЯЗАТЕЛЬНО откройте app/Controllers/Main.php и раскомментируйте строку 52 .
    Из этого:
    [​IMG]
    Сделайте вот это:
    [​IMG]


    В итоге получается такая простенькая страничка:

    [​IMG]

    Теперь на счет того, куда все это сохраняется:

    1) Таблица autodonate_users_data :
    [​IMG]
    В этой таблице хранится текущий баланс игрока.
    user_id - это ID аккаунта игрока в таблице users
    amount
    - текущий баланс игрока (ВНИМАНИЕ!!! Баланс хранится в копейках, а не рублях)

    2) Таблица autodonate_recharge_history :
    [​IMG]
    В этой таблице хранится история пополнений баланса.
    user_id - это ID аккаунта игрока в таблице users
    amount
    - сумма пополнения баланса (ВНИМАНИЕ!!! Сумма хранится в копейках, а не рублях)
    recharge_date - Дата пополнения баланса (timestamp)

    Информацию с этих таблиц Вы уже будете использовать в своих скриптах.

    Вот и все, вроде ничего не забыл :)

    P. S. Клиент-Серверный вариант не было смысла делать, так как шаровый авто-донат может понадобиться лишь тем, у кого нет денег на платные ЛК, а соответственно нет и денег на защиту сервера. То есть спалить реальный IP машины не составляет труда.

    License: MIT License

    Вложения:

    Последнее редактирование: 3 апр 2015
    NetSpirit, MorzE, bradis и 5 другим нравится это.
  2. bradis Пользователи

    Сообщения:
    290
    Лайки:
    31
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    VioTeam
    тонкий намёк на меня:D про нет денег на лк:D
    такс маленький вопрос,т.е. здесь все сделано.но не реализована награда за пополнение т.е вывод голды на персонажа после пополнеия,Я прав?
  3. TopicStarter Overlay

    salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Конечно, что не реализовано. Это универсальное решение для всех серверов, которое позволяет только принимать деньги и сохранять все это в необходимые таблицы. А дальше уже администраторы серверов используют эту информацию так, как им необходимо.
    bradis нравится это.
  4. alekill Пользователи

    Сообщения:
    166
    Лайки:
    27
    Репутация:
    0
    Команда:
    GreenCat
    Есть тут кстати те, кого WayToPay кинул?
    romchky и Sneeska нравится это.
  5. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Хрень очередная. Громоздкий велосипед, у которого руль к спицам прикреплен.
  6. NEO I Old school Пользователи

    Сообщения:
    117
    Лайки:
    43
    Пол:
    Мужской
    Репутация:
    0
    Знаю чувака, почти на 30к его кинули, меня на 100руб :D Вовремя на UnitPay перешёл)
  7. dpakon1 Пользователи

    Сообщения:
    101
    Лайки:
    14
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    myself
    Каким образом? О-о
  8. pdev 14:23 Команда форума Администратор Программист Open Source Contributor

    Сообщения:
    1.409
    Лайки:
    1.407
    Пол:
    Мужской
    Репутация:
    7
    Команда:
    Indy
    Страна:
    Turkey Turkey
    Просьба, OpenSource разработки заливать на bitbucket.org или github.com.
    Будьте мужиками.
  9. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ну юнит пай тоже не без греха, посчитают, что твой проект мало активен и заблочат с концами.
  10. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    Согласен для данной задачи использовать framework не самая лучшая идея. Причем не документированный framework в котором кроме автора никто не разбирается.
    Ну и то, что я увидел бегло глянув код.
    Переход по ссылке http://auto-donate.dev/index.php/main/index/ выкинет 404.
    В классе Foundation, все методы protected. Зачем? Там же в методе __get на строке 638, лучше было бы использовать method_exists. В __get стоит проверять существует ли свойство или нет, иначе php генерирует Notice, естественно о будет показан, если включено отображение ошибок. Так же позволять устанавливать любое свойство через __set, не есть хорошая идея.
    Конфиги в различных папках, причем их прилично.
    В Http::request, функция curl_setopt будет вызвана минимум 7 раз, если не ошибаюсь. Для таких случаев есть: curl_setopt_array.
    Во многих файлах используется пространство имен MvcBox, которого у тебя нет. Зато есть одноименный класс MvcBox. Сомневаюсь, что ты через use MvcBox подключаешь этот класса, т.к. его ты везде вызываешь из глобального пространства.
    Конструктор класс не может ничего возвращать.
    Структура проекта оставляет желать лучшего. Конфиги, как я уже говорил разбросаны. Часть файлов, которые я бы отнес к framework'у в папке bootstrap.
    PHPDoc не самым лучшим образом сделаны, у меня IDE ругалась не переставая. IDE много на что еще ругается, но не вижу смысла все тут описывать и не на все стоит обращать внимание.
    И напоследок анализ файла Database.php:
    [​IMG]
    P.S. Это не упреки, а просто направления для работы.
    JonMagon и Stranger нравится это.
  11. TopicStarter Overlay

    salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Там часть legacy кода родом с середины 2012-го года, который я не стал трогать, чтобы не ламать обратную совместимость с некоторыми старыми проектами. Да и фреймворком я бы свой велосипед не назвал, ибо функционал беден. Скорее всего это простенький MVC каркас (в принципе примерно так и переводится название) с базовым набором библиотек, которые избавляют от основных рутинных задач. Там частенько встречаются куски кода, которые противоречат друг другу, ибо тогда было время активного изучения пыха и каждый день узнавалось что-то новое и велосипед писался дальше уже с учетом полученных новых знаний.
    Но тогда я допустил ошибку - взял себе за образец CodeIgniter (с него же был взят и стиль PHPDoc, и многое другое).
    Все еще иногда его применяю, когда Laravel нет смысла использовать, но и вручную все писать тоже не охота.

    Там все так и задумано, чтобы можно было менять только некоторые параметры запроса, все остальное будет взято с конфига. Ниже по коду есть Extended HTTP request - Http::eRequest , который устанавливает опции через curl_setopt_array()

    Чтобы этот класс только наследовался.

    Уменьшить зависимость между компонентами. Чтобы можно было "безболезненно" вырезать компонент, или же использовать его отдельно от велосипеда без изменений (или с их минимальным количеством).

    __set используется только в activeRecord (и то при создании сущности) и в Io (для успрощения работы с некоторыми методами).


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


    Я знаю, у меня конструкторы ничего и не возвращают, return; (или иногда встречается return null; ) использую для прерывания работы конструктора (когда это необходимо).


    В bootstrap я вынес то, что (на мой взгляд) можно отнести к так называемым "Побочным действиям" (PSR-1). Некоторые компоненты по сути и не являются побочными действиями, но я предпочел все равно вынести их в bootstrap
    Последнее редактирование: 5 апр 2015
  12. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    Я про строку 102 в Io где ты позволяешь установить любое свойство, даже те, которых нет. И про строку 75, где ты позволяешь, так же, получить любое свойство.

    Какой в этом смысл? Вызвать метод из вне ты все равно позволяешь используя __get, но напрямую вызвать нет. Я к тому, что магия __get дает дополнительную нагрузку при вызове, но в данном случаи не несет никакой пользы.

    Бесполезная затея. Тот же модуль работы с базой зависит от модуля Caching. Данная идея только принесет тебе проблемы в дальнейшем. Например, у тебя конфиги вшиты в сами модули и для того, чтобы сделать два проекта на твоем framework'е необходимо его скопировать. Т.е. дважды использовать его не получится т.к. у тебя настройки всего приложения зависят от настроек framework'а и отдельно от него не меняются.

    Ну и как я говорил еще много чего есть, если смотреть глубже.
  13. TopicStarter Overlay

    salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Все зависимости проходят через MvcBox::getInstance (правда встречаются случаи, где другие компоненты используются в обход MvcBox::getInstance, что я все забываю исправить) , которые потом легко найти.


    Изначально так и задумывалось, что можно создать только один проект. Была мысль переделать, но так и не дошли руки.

    Так же была идея полностью все переписать, не в этом нет смысла, так как есть уже все готовое оттестированые решения, на пример те же - Laravel, Zend, Symfony + кучи бандлов , что позволяет решать 99,9% всех задач. Так же Composer'ом можно подтянуть сторонние библиотеки.
    Последнее редактирование: 9 апр 2015
  14. Димка11 Пользователи

    Сообщения:
    231
    Лайки:
    32
    Пол:
    Мужской
    Репутация:
    1
    Страна:
    Russian Federation Russian Federation
    пере залейте картинки пожалуйста
  15. st1vka Пользователи

    Сообщения:
    1
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Advise RolePlay
    Страна:
    Russian Federation Russian Federation
    Возможно связаться со создателем темы? Нужно сделать авто-донат, но картинок не видно.
Черновик сохранён Черновик удалён
Similar Threads
  1. k0nst
    Ответов:
    4
    Просмотров:
    3.159
  2. mr.Slink
    Ответов:
    0
    Просмотров:
    1.856
  3. New-X
    Ответов:
    6
    Просмотров:
    2.052
  4. bleR
    Ответов:
    0
    Просмотров:
    1.559
  5. LiptoN[Triton]
    Ответов:
    11
    Просмотров:
    2.134
Загрузка...

Поделиться этой страницей