[Урок] Создание донат системы с помощью A1Pay - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок] Создание донат системы с помощью A1Pay
[CM]ExtazZz Дата: Суббота, 22.09.2012, 08:57 | Сообщение # 1
Боец
Сообщений: 158
Статус: Offline
>ТРЕБОВАНИЯ<

1. Наличие сайтa с FTP доступом.
2. Знание хотя бы самое маленькое php и MySQL. (не знаете вообще что это такое, не беритесь.)


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

http://i.imgur.com/jXf2v.jpg


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

http://i.imgur.com/9lfZZ.jpg

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

3.


http://i.imgur.com/t4vBO.jpg

Теперь нажимаем "Создать кнопку" (выделено на картинке). Заполняем поля и нажимаем "Создать код кнопки"
http://i.imgur.com/UWc2p.jpg

4.Получаем код кнопки и пока оставим это.
Идём в phpmyadmin вашего сайта и создаём таблицу, допустим "Donate" и создаём такие поля:
http://i.imgur.com/UOFJO.jpg

5.Теперь, непосредственно на вашем сайте создаём файлы script.php donate.php nodonate.php
В файл script.php записываем следующий код (В коде изменяем Логины , Пароли , и Базу данных , больше нечего)
(Эти файлы вы можете создать в программе Notepad++ и загрузить на свой сайт через FileZilla)

Code
<?
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 = "Здравствуйте!\r\nВот ваш донат код: '$code'\r\n  
         Чтобы его использовать, введите в игре /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 (тут уже не только код, но и весь скелет сайта) В нужное место добавьте код:

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


В OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Code
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", "Ошибка! Этот код либо не существует, либо не действителен.","Ок", "");//если код не правильный
                         }
             }
         }


Вот собственно и всё, код останется в базе данных, но не будет активен, а можно и удалять. Если что-то не понятно - спрашивайте, помог ставьте "+"
Да, чтобы проверить можно создать кнопку с ценой 1 рубль и задонатить, думаю рубль никому не жалко.
Sin[V3] Дата: Суббота, 08.12.2012, 04:08 | Сообщение # 2
RAQ
Сообщений: 578
Статус: Offline
Знал это ранее, хорошая статья, удавшимся проектам понадобиться ;)


Приму в дар аккаунты Samp/Steam.
Cortez Дата: Понедельник, 21.01.2013, 19:27 | Сообщение # 3
Боец
Сообщений: 136
Статус: Offline
Где-то я это уже видел случайно не вот тут?
Код
http://programmsupprot.forum2x2.ru/t32-topic
/ не реклама у тебя точно слово в слово.

Прикрепления: 4095176.gif (14.5 Kb)
gTrueMan Дата: Суббота, 26.01.2013, 21:36 | Сообщение # 4
АМФЕТАМИНОВЫЙ ТОРЧОК
Сообщений: 140
Статус: Offline
Цитата (Cortez)
/ не реклама у тебя точно слово в слово.

Это с П-И


]majestic-12 project[
РЕГ.ДАННЫМИ БОЛЬШЕ НЕ ЗАНИМАЮСЬ.
ГРАФИКУ ЗАКАЗЫВАТЬ ЗДЕСЬ


СашаБелый Дата: Воскресенье, 03.04.2016, 16:32 | Сообщение # 5
Вирты SVL
Сообщений: 328
Статус: Offline
Хорошая тема, полезная, спасибо автор понятно обьяснил.

Покупка/Продажа Вирт SVL
Операции с валютой. Сбербанк/ЯД/Киви
Мой VK
  • Страница 1 из 1
  • 1
Поиск: