Перейти к содержанию
Авторизация  
John_Smith

[CRMP|SAMP]Донат сервис на системе A1pay

Рекомендуемые сообщения

John_Smith

>ТРЕБОВАНИЯ

 

 

1. Наличие сайте с FTP доступом.

2. Знание хотя бы самое маленькое php и MySQL. (не знаете вообще что это такое, не беритесь.)

 

 

1. Начнём с регистрации на сайте услуг биллинга. Заходим по адресу www.a1pay.ru В правом верхнем углу выбираем "Вход для клиентов" либо "Регистрация" войти можно через гугл, яндекс, майл... После входа выбираем "Инструменты" вверху.

 

 

 

 

2.Нажимаем "Добавить сервис"

Открывается

 

 

 

Далее указываем всё как на картинке (нажмите на неё, чтобы увеличить). "ваш_сайт" замените на адрес вашего сайта. Нажимаем добавить.

 

3.

 

 

 

Теперь нажимаем "Создать кнопку" (выделено на картинке). Заполняем поля и нажимаем "Создать код кнопки"

 

 

4.Получаем код кнопки и пока оставим это.

Идём в phpmyadmin вашего сайта и создаём таблицу, допустим "Donate" и создаём такие поля:

 

 

5.Теперь, непосредственно на вашем сайте создаём файлы script.php donate.php nodonate.php

В файл script.php записываем следующий код (В коде изменяем Логины , Пароли , и Базу данных , больше нечего)

(Эти файлы вы можете создать в программе Notepad++ и загрузить на свой сайт через FileZilla)

 

PHP код:

<? 
FUNCTION A1Lite_processor ($t,$secret) // не что вроде public (комментарии удали) 
{ 
$params = array(        'tid' => $t['tid'], 
'name' => $t['name'],  
'comment' => $t['comment'], 
'partner_id' => $t['partner_id'], 
'service_id' => $t['service_id'], 
'order_id' => $t['order_id'], 
'type' => $t['type'], 
'partner_income' => $t['partner_income'], 
'system_income' => $t['system_income'] 
); 
$params['check'] = md5(join('', array_values($params)) . $secret); 
if ($params['check'] === $t['check']) 
{ 
// Действия по зачислению платежа. A1Lite - Ключи совпали. 
$ok=TRUE; 
} 
else 
{ 
// Действия по ошибке. A1Lite - Ключи не совпали. 
$ok= FALSE; 
} 

return $ok; 
} 
$secret = 'KEY'; // секретный ключ который указали при регистрации на a1pay (ИЗМЕНЯЕМ ПОД СЕБЯ) 
if(A1Lite_processor($_POST,$secret) === TRUE) 
{ 
        $code = rand(1000000,10000000); //От этих чисел получаем кода 
        $email = $_POST['email']; // получаем e-mail, указанный клиентом 
        $text = "Здравствуйте!rnВот ваш донат код: '$code'rn  
        Чтобы его использовать, введите в игре /donate в окошко, которое появится введите данный код."; // пишем письмо клиенту 
        mail($email, "Пополнение средств на сервере ********", $text); // отправляем письмо клиенту 
        $money = 100000; // Деньги которые игрок получает при вводе правильного кода (меняем под себя) 
        $db = mysql_connect("localhost", "root", "") or die("Ошибка подключения к серверу."); //подключаемся к базе сайта (ДАННЫЕ ПИШЕМ СВОИ) 
        mysql_select_db("SITE") or die("Не выбрана база!"); //выбираем базу  
        mysql_query("INSERT INTO `Donate` (Code,Money,Status) VALUES ('$code','$money','1')"); // записываем всю эту конитель в базу (`Donate` 'это назавание таблицы ) 
} 
else 
{ 
        echo 'Not'; // здесь выведем сообщение, если игрок как попытался обмануть вас 
} 
?>

6.Теперь заполняем файл donate.php (тут уже не только код, но и весь скелет сайта) В нужное место добавьте код:

 

PHP код:

FUNCTION A1Lite_processor ($t,$secret) 
{ 
$params = array(        'tid' => $t['tid'], 
'name' => $t['name'],  
'comment' => $t['comment'], 
'partner_id' => $t['partner_id'], 
'service_id' => $t['service_id'], 
'order_id' => $t['order_id'], 
'type' => $t['type'], 
'partner_income' => $t['partner_income'], 
'system_income' => $t['system_income'], 
); 
$params['check'] = md5(join('', array_values($params)) . $secret); 
if ($params['check'] === $t['check']) 
{ 
        $ok=TRUE; 
} 
else 
{ 
// Действия по ошибке. A1Lite - Ключи не совпали. 
$ok= FALSE; 
} 
return $ok; 
} 
$secret = 'KEY'; // Изменяем ключ под себя 
if(A1Lite_processor($_GET,$secret) == TRUE) 
{ 
echo 'На ваш e-mail выслан код. Введите в игре /donate в это окошко введите код, посланный вам на почту.'; // сообщение выдаваемое игроку, может быть любое, это не важно 
} 
else 
{ 
echo 'Произошла ошибка.'; // игрок попытался вас надурить 
}
7.Файл nodonate.php заполните сами, этот файл вызывается только когда на сервере произошла ошибка.

Теперь идём в pawno.

 

 

8.В OnPlayerCommandText(playerid, cmdtext[])

 

PHP код:

else if(strcmp(cmd, "/donate", true) == 0) 
        { 
            ShowPlayerDialog(playerid, 197, DIALOG_STYLE_INPUT, "Пополнение счёта.","Введите донат-код полученный вами на e-mail в поле ниже.", 
            "Далее","Закрыть"); // выведем игроку окошко, куда он введёт код 
            return 1; 
        }  
В OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

 

PHP код:

 else if(dialogid == 197) 
        { 
            if(response) 
            { 
                if(!strlen(inputtext) || (!IsNumeric(inputtext))) 
                { 
                            ShowPlayerDialog(playerid, 197, DIALOG_STYLE_INPUT, "Пополнение счёта.","Введите донат-код полученный вами на e-mail в поле ниже.", 
                            "Далее","Закрыть"); 
                                return 1; 
                    } 
                    new code = strval(inputtext); 
                    format(string, sizeof(string),"SELECT Money FROM Donate WHERE Code = '%d' AND Status = '1'",code); 
                    mysql_query(string); 
                    mysql_store_result(); 
                    if(mysql_num_rows()) 
                    { 
                                new name[24], money; 
                                mysql_fetch_row_format(name, "|"); 
                    sscanf(name, "p<|>d",money); 
                                PlayerInfo[playerid][pBankMoney] += money; // выдаем деньги в банк (как на SAMP-RP ) можно изменить типо под PlayerInfo[playerid][pDonateMoney] += dmoney 
                                format(string, sizeof(string),"Ваш счёт пополнен на %d рублей. Деньги лежат в банке.",money); 
                                SendClientMessage(playerid, COLOR_ORANGE, string); 
                                format(string, sizeof(string),"UPDATE Donate SET Status = '0' WHERE Code = '%d'",code); 
                                mysql_query(string); 
                        } 
                        else 
                        { 
                            ShowPlayerDialog(playerid, 19, DIALOG_STYLE_MSGBOX, "EROR", "Ошибка! Этот код либо не существует, либо не действителен.","Ок", "");//если код не правильный 
                        } 
            } 
        }
Вот собственно и всё, код останется в базе данных, но не будет активен, а можно и удалять.

image.jpg

image.jpg

image.jpg

image.jpg

image.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.