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

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

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

Зарегистрироваться!
Статус
В этой теме нельзя размещать новые ответы.
Пользователь
Регистрация
25 Окт 2023
Сообщения
88
На бд приходит донат, а в игру не зачисляется, в чем причина?
Код:
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
Сообщения
88
Пользователь
Регистрация
25 Окт 2023
Сообщения
88
Пользователь
Регистрация
25 Окт 2023
Сообщения
88
Пользователь
Регистрация
25 Окт 2023
Сообщения
88
Возможно ошибка где-то здесь. Так как у меня идет поступление платежа только на рубли:
Код:
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
Сообщения
88
𝚖𝚎𝚖𝚎𝚗𝚝𝚘 𝚖𝚘𝚛𝚒.
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
1,071
там все нормально на бд все приходит. Сервер не принимает эту операцию.
Все условия в вызове коллбэка срабатывают?

Пример для проверки:
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
Сообщения
88
Все условия в вызове коллбэка срабатывают?

Пример для проверки:
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;
}
Как с помощью этого проверить?
 
𝚖𝚎𝚖𝚎𝚗𝚝𝚘 𝚖𝚘𝚛𝚒.
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
1,071
Как с помощью этого проверить?
Заменить свой коллбэк на мой.
Сделать тестовое пополнение, чтобы появилась строка в базе и заставить коллбэк сработать на сервере.
Дальше уже проверять server_log.
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
88
𝚖𝚎𝚖𝚎𝚗𝚝𝚘 𝚖𝚘𝚛𝚒.
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
1,071
Статус
В этой теме нельзя размещать новые ответы.
Сверху