Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

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

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

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

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