Решено Не работает авто-донат FreeKassa

Добро пожаловать!

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Статус
В этой теме нельзя размещать новые ответы.
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
На бд приходит донат, а в игру не зачисляется, в чем причина?
Код:
forward freekassa_callback(playerid);
public freekassa_callback(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(!rows) return SendClientMessage(playerid, COLOR_GREY, "На Ваш счёт не поступало пополнений. {00FF7F}Пополнить счёт можно на {FFFFFF}"PAGE_WEBSITE_DONATE"");
    new sum;
    cache_get_value_index_int(0, 0, sum);
    new status;
    cache_get_value_index_int(0, 1, status);
    new did;
    cache_get_value_index_int(0, 2, did);
    new string[128];
    if(status == 1)
    {
        PI[playerid][pRub] += sum*2;
        PI[playerid][pRubWeek] += sum;
        PI[playerid][pTotalCredits] += sum;
        format(string, sizeof(string), "На ваш счёт зачислено %i рублей. Спасибо за помощь серверу!", sum*2);
        SendClientMessage(playerid, COLOR_DARKGREEN, string);
        format(string, sizeof(string), "%s /donate to %d", GetName(playerid), sum*2);
        SendLog("GiveCredits", string);
        format(string, sizeof(string), "UPDATE "T_ACCOUNTS" SET rub=%d,pRubWeek=%d,totalcredits=%d WHERE id=%d", PI[playerid][pRub], PI[playerid][pRubWeek], PI[playerid][pTotalCredits], PI[playerid][pID]);
        mysql_pquery(dbHandle, string, "", "");
        format(string, sizeof(string), "DELETE FROM `freekassa_payments` WHERE `id` = '%d'", did);
        mysql_pquery(dbHandle, string, "", "");
    }
    return 1;
}
 
Последнее редактирование:
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Возможно ошибка где-то здесь. Так как у меня идет поступление платежа только на рубли:
Код:
forward freekassa_callback(playerid);
public freekassa_callback(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(!rows) return SendClientMessage(playerid, COLOR_GREY, "На Ваш счёт не поступало пополнений. {00FF7F}Пополнить счёт можно на {FFFFFF}"PAGE_WEBSITE_DONATE"");
    new sum;
    cache_get_value_index_int(0, 0, sum);
    new status;
    cache_get_value_index_int(0, 1, status);
    new did;
    cache_get_value_index_int(0, 2, did);
    new string[128];
    if(status == 1)
    {
        PI[playerid][pRub] += sum*2;
        PI[playerid][pRubWeek] += sum;
        PI[playerid][pTotalCredits] += sum;
        format(string, sizeof(string), "На ваш счёт зачислено %i рублей. Спасибо за помощь серверу!", sum*2);
        SendClientMessage(playerid, COLOR_DARKGREEN, string);
        format(string, sizeof(string), "%s /donate to %d", GetName(playerid), sum*2);
        SendLog("GiveCredits", string);
        format(string, sizeof(string), "UPDATE "T_ACCOUNTS" SET rub=%d,pRubWeek=%d,totalcredits=%d WHERE id=%d", PI[playerid][pRub], PI[playerid][pRubWeek], PI[playerid][pTotalCredits], PI[playerid][pID]);
        mysql_pquery(dbHandle, string, "", "");
        format(string, sizeof(string), "DELETE FROM `freekassa_payments` WHERE `id` = '%d'", did);
        mysql_pquery(dbHandle, string, "", "");
    }
    return 1;
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
867
там все нормально на бд все приходит. Сервер не принимает эту операцию.
Все условия в вызове коллбэка срабатывают?

Пример для проверки:
C:
forward freekassa_callback(playerid);
public freekassa_callback(playerid) {
    new rows;
    cache_get_row_count(rows);
    
    if(!rows)
        return SendClientMessage(playerid, COLOR_GREY, "На Ваш счёт не поступало пополнений. {00FF7F}Пополнить счёт можно на {FFFFFF}"PAGE_WEBSITE_DONATE"");
    
    new sum,
        status,
        did;
    
    cache_get_value_index_int(0, 0, sum);
    cache_get_value_index_int(0, 1, status);
    cache_get_value_index_int(0, 2, did);
    
    new string[128];
    print("[freekassa_callback]: test (1)");
    if(status == 1) {
        print("[freekassa_callback]: test (2)");
        PI[playerid][pRub] += sum*2;
        PI[playerid][pRubWeek] += sum;
        PI[playerid][pTotalCredits] += sum;
        format(string, sizeof(string), "На ваш счёт зачислено %i рублей. Спасибо за помощь серверу!", sum*2);
        SendClientMessage(playerid, COLOR_DARKGREEN, string);
        format(string, sizeof(string), "%s /donate to %d", GetName(playerid), sum*2);
        SendLog("GiveCredits", string);
        format(string, sizeof(string), "UPDATE "T_ACCOUNTS" SET rub=%d,pRubWeek=%d,totalcredits=%d WHERE id=%d", PI[playerid][pRub], PI[playerid][pRubWeek], PI[playerid][pTotalCredits], PI[playerid][pID]);
        mysql_pquery(dbHandle, string, "", "");
        format(string, sizeof(string), "DELETE FROM `freekassa_payments` WHERE `id` = '%d'", did);
        mysql_pquery(dbHandle, string, "", "");
    }
    return 1;
}
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Все условия в вызове коллбэка срабатывают?

Пример для проверки:
C:
forward freekassa_callback(playerid);
public freekassa_callback(playerid) {
    new rows;
    cache_get_row_count(rows);
   
    if(!rows)
        return SendClientMessage(playerid, COLOR_GREY, "На Ваш счёт не поступало пополнений. {00FF7F}Пополнить счёт можно на {FFFFFF}"PAGE_WEBSITE_DONATE"");
   
    new sum,
        status,
        did;
   
    cache_get_value_index_int(0, 0, sum);
    cache_get_value_index_int(0, 1, status);
    cache_get_value_index_int(0, 2, did);
   
    new string[128];
    print("[freekassa_callback]: test (1)");
    if(status == 1) {
        print("[freekassa_callback]: test (2)");
        PI[playerid][pRub] += sum*2;
        PI[playerid][pRubWeek] += sum;
        PI[playerid][pTotalCredits] += sum;
        format(string, sizeof(string), "На ваш счёт зачислено %i рублей. Спасибо за помощь серверу!", sum*2);
        SendClientMessage(playerid, COLOR_DARKGREEN, string);
        format(string, sizeof(string), "%s /donate to %d", GetName(playerid), sum*2);
        SendLog("GiveCredits", string);
        format(string, sizeof(string), "UPDATE "T_ACCOUNTS" SET rub=%d,pRubWeek=%d,totalcredits=%d WHERE id=%d", PI[playerid][pRub], PI[playerid][pRubWeek], PI[playerid][pTotalCredits], PI[playerid][pID]);
        mysql_pquery(dbHandle, string, "", "");
        format(string, sizeof(string), "DELETE FROM `freekassa_payments` WHERE `id` = '%d'", did);
        mysql_pquery(dbHandle, string, "", "");
    }
    return 1;
}
Как с помощью этого проверить?
 
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
867
Как с помощью этого проверить?
Заменить свой коллбэк на мой.
Сделать тестовое пополнение, чтобы появилась строка в базе и заставить коллбэк сработать на сервере.
Дальше уже проверять server_log.
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
867
Статус
В этой теме нельзя размещать новые ответы.
Сверху