DEST

Подключаем автодонат с помощью FreeKassa.ru

35 posts in this topic

Всем привет! Многие видели урок, как подключить систему доната с unitpay, однако, уже многие знают, что там требуют персональный аттестат WebMoney. Не у каждого данный аттестат есть. Если в ближайшем будущем у вас его не предвидится, можно использовать данную систему. 

Итак, давайте приступим. Сразу скажу, что данная система подойдет не только для CRMP, но и для SAMP соответственно тоже. 

Переходим на сайт фрикассы, скачиваем модуль для SAMP. Переходим по этой ссылке.

После того как скачали, читаем инструкцию от модулей, которая расположена внутри. 

Впринципе, там все ясно и понятно расписано. 


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

ОСНОВНОЙ (НОВЫЙ) МЕТОД: 

Где-то в середине настроек видим такие: 

// Таблица начисления товара, например `users`
const TABLE_ACCOUNT = '';
// Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email`
const TABLE_ACCOUNT_NAME = '';
// Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate`
const TABLE_ACCOUNT_DONATE= '';

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

Пример

// Таблица начисления товара, например `users`
const TABLE_ACCOUNT = 'accounts';
// Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email`
const TABLE_ACCOUNT_NAME = 'name';
// Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate`
const TABLE_ACCOUNT_DONATE= 'pDonate';

 

 

Если вы хотите обрабатывать платежи вручную (как описано в уроке), то сделайте следующее. 

Зайдите в файл config.php и строки TABLE_ACCOUNT, TABLE_ACCOUNT_NAME. TABLE_ACCOUNT_DONATE оставьте пустыми, т.е.:
 


// Таблица начисления товара, например `users`
const TABLE_ACCOUNT = '';
// Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email`
const TABLE_ACCOUNT_NAME = '';
// Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate`
const TABLE_ACCOUNT_DONATE= '';

Далее, в OnPlayerConnect добавляем код (проверяем платежей, если они поступили). При условии, что вы используете версию mysql r-39-2. 


new name[24];
GetPlayerName(playerid, name, sizeof(name));
new query[145];
format(query, sizeof(query), "SELECT * FROM `freekassa_payments` WHERE `account` = '%s' AND `status` = '0' LIMIT 1", name);
mysql_function_query(ид_подключения_к_базе, query, true, "CheckFreeKassa", "is", playerid, name);

В конец мода вставляем проверку доната


forward CheckFreeKassa(playerid, name[]);
public CheckFreeKassa(playerid, name[])
{
    new rows, fields, temp[15], query[256], donatep;
    cache_get_data(rows, fields);
    if(rows)
    {
        new strtime[64],Year, Month, Day,hour,minuite,second;
        gettime(hour,minuite,second), getdate(Year, Month, Day);
        format(strtime,sizeof(strtime),"%02d-%02d-%02d %02d:%02d:%02d",Year, Month, Day,hour,minuite,second);
        cache_get_field_content(0, "sum", temp), Переменная_донат_очков += floatround(temp, floatround_round); // округляем дробное число по математическим правилам
        format(query, sizeof(query), "UPDATE `freekassa_payments` SET `status` = '1', `dateComplete` = '%s' WHERE `account` = '%s' AND `status` = '0' LIMIT 1",strtime, name);
        mysql_function_query(ид_подключения_к_базе, query, false, "", "");
    }
    else
    {
        SendClientMessage(playerid, COLOR_WARNING, "Новых пополнений на аккаунт не найдено!");
    }
    return true;
}

С этим способом вы можете подключить систему доната даже, если у вас используется mxINI. Таблицу все-равно использовать требуется, однако только для донатов, остальное можете хранить на mxINI. 

Share this post


Link to post
Share on other sites

Отличный урок.

 

Share this post


Link to post
Share on other sites

Спасибо

Share this post


Link to post
Share on other sites

Какую именно нужна база Mysql или касса? Мне просто выдаёт ошибку с точками.

Share this post


Link to post
Share on other sites

@THEMOD_YT урок написан под mySQL r 39, касса - фрикасса. В принципе, если вы не хотите обрабатывать платежи вручную, вы можете автоматически их начислять в оффлайне при пополнении, указав в конфиге эти данные:
 

В 13.08.2017 в 02:27, DEST сказал:

// Таблица начисления товара, например `users` const TABLE_ACCOUNT = ''; // Название поля из таблицы начисления товара по которому производится поиск аккаунта/счета, например `email` const TABLE_ACCOUNT_NAME = ''; // Название поля из таблицы начисления товара которое будет увеличено на колличево оплаченого товара, например `sum`, `donate` const TABLE_ACCOUNT_DONATE= '';

 

Share this post


Link to post
Share on other sites

 

кхм 1. это если у меня так то

2. что нужно сюда писать?

 

Заметка от DEST , создано

Все скриншоты загружать на форум, а не через какие-то другие фотохосты.

Share this post


Link to post
Share on other sites
В 31.01.2018 в 20:13, DEST сказал:

@THEMOD_YT урок написан под mySQL r 39, касса - фрикасса. В принципе, если вы не хотите обрабатывать платежи вручную, вы можете автоматически их начислять в оффлайне при пополнении, указав в конфиге эти данные:
 

 

а как заливать

Share this post


Link to post
Share on other sites

@Алмас на втором скрине указать: 

первые три настройки брать из личного кабинета фрикассы

4 оставить без изменений

5, 6, 7 взять из базы данных, таблицы с аккаунтами.

8-10 настройки базы данных

 

На первом скрине ничего не нужно делать, в этой таблице будет храниться инфа о прошедших платежах

Share this post


Link to post
Share on other sites

Тут знаешь ,что тут сумма доната ставит пополнения.Например если у тебя было 50 рублей и задонатил 20 р ,то тебе переменная ставит 20 р

Share this post


Link to post
Share on other sites

@#KING исправлено. 


Изменено основное содержание темы, в связи с обновлением модуля (p.s. хотя обновление было давно, просто руки не доходили сделать). 

Share this post


Link to post
Share on other sites

Урок хороший, но чайники не поймут.Можно было подробнее

Заметка от Cawfee , создано

Где тогда Ваш "плюсик"? Поблагодарите автора, коль уж его пост оказался Вам полезен.

Share this post


Link to post
Share on other sites

Всё сделал по уроку, деньги не доходят. Что делать?

Share this post


Link to post
Share on other sites
В 12.02.2019 в 16:19, Papleet сказал:

Всё сделал по уроку, деньги не доходят. Что делать?

Тоже самое, ты исправил эту проблему? 

Share this post


Link to post
Share on other sites

@Dmitry_History Где-то в истории платежей в фрикассе есть раздел "Логи" или что-то в этом роде. Зайдите туда и прикрепите их сюда. Обратите внимание, что логи могут содержать персональную информацию, ее лучше изменить или вовсе удалить. 

Share this post


Link to post
Share on other sites

Здравствуйте, всё настроил но игровая валюта не приходит на аккаунт. Даже в таблице freekassa_payments нет записей. Как это решается?

Share this post


Link to post
Share on other sites

@Mark212 смотрите логи в самой фрикассе. 

Share this post


Link to post
Share on other sites

@DEST Вот такой лог:

Ответ:

HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Tue, 23 Jul 2019 14:27:54 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff

Share this post


Link to post
Share on other sites

@Mark212 значит адрес уведомления в настройках выдает ошибку 500. Если указывали https:// то попробуйте указать с http://. 

Share this post


Link to post
Share on other sites

@DEST не помогает

Share this post


Link to post
Share on other sites

@Mark212 какой вы адрес указали в получении уведомлений в настройках? 

Share this post


Link to post
Share on other sites

@Mark212 скиньте еще раз полный лог, который выдает фрикасса. 

Share this post


Link to post
Share on other sites

@DEST 

Запрос: MERCHANT_ORDER_ID=%CF%E*%EF%EE%EB%ED%E*%**%E8%E5+%F1%F7%E5%F2%E0&P_PHONE=&P_EMAIL=p*****@mail.ru&CUR_ID=1**&AMOUNT=1&MERCHANT_ID=1****0&SIGN=857****e***cb9bc****d9dcf8319b482&intid=69**6165&us_account=***k&test_payment=1

* - закрыл почту и прочее.

Ответ:

HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Thu, 25 Jul 2019 11:42:42 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff

Share this post


Link to post
Share on other sites

@Mark212 значит вам нужно смотреть в логи ошибок php. Видимо, какая-то ошибка происходит и поэтому код 500. Можете попробовать создать файл с именем .htaccess, внутрь которого положить 

php_flag display_errors on

после выполнить еще раз тестовую оплату, и опять посмотреть в логи фрикассы, если что-то изменится, скинуть сюда. 

Share this post


Link to post
Share on other sites

@DEST Кажется что-то налаживается!!

Изменилось!

Ответ:

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 25 Jul 2019 15:34:54 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Server-Powered-By: Engintron

<br />
<b>Fatal error</b>:   in <b>/home/i1******/public_html/donate/lib/FreekassaModel.php</b> on line <b>19</b><br />

Edited by Mark212

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Mason
      By Mason
      Здравствуйте, как сделать так чтобы при включении отключении кейса число в базе данных сохранялось?  "0" Не появляется. "1" Появляется.

      У меня вся система кейса готова но есть проблема и баг. 
       
      Описание бага:
      В диалоге светится надпись "Появляется" независимо от значения в базе, даже когда нажимаю кейс должен пропасть и надпись должна поменяться на "Не появляется"  Но ничего не меняется.

      Вот сама система отключения/включения кейса:
       
    • legendaaa29@mail.ru
      By legendaaa29@mail.ru
      Всем ку я пишу свой личный мод и у меня встал сильный вопрос как сделать так чтобы к примеру: Человек приходит получать паспорт, он вводит данные рождения персонажа и т.д. Потом-же вылезает окно "Поздравляем вы получили паспорт!". И потом-же он не мог повторно получать паспорт это легко сделать но! SQL после перезахода игрок так-же может пройти ту же самую процедуру а мне надо чтобы через базу данных его аккаунт уже имел паспорт чтобы к таблице было значение 1. Как это сделать я не знаю, подскажите пажалуйста.