логотип

Инструкция по кассе

База и обработка платежей через MySQL и PHP.
16.09.2025 в 15:41
3
статус Keks423 16.09.2025 в 10:58#1
Шаг 1: Подготовка базы данных ((:\r\n\r\nДля корректной работы необходимо создать таблицу для хранения информации о платежах. Подключитесь к вашей базе данных MySQL и выполните следующий SQL-запрос, чтобы создать таблицу payments:\r\n[code]\r\nCREATE TABLE `payments` (\r\n `id` INT(11) NOT NULL AUTO_INCREMENT,\r\n `idpay` VARCHAR(255) NOT NULL,\r\n `userdata` TEXT NOT NULL,\r\n `sum` DECIMAL(10, 2) NOT NULL,\r\n `ps` VARCHAR(50) NOT NULL,\r\n `status` VARCHAR(50) NOT NULL,\r\n `timestamp` DATETIME NOT NULL,\r\n `processed` BOOLEAN NOT NULL DEFAULT 0,\r\n PRIMARY KEY (`id`),\r\n UNIQUE KEY `idpay` (`idpay`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;\r\n[/code]\r\n\r\nЭта таблица будет хранить уникальный идентификатор платежа, данные пользователя, сумму, статус и отметку времени.\r\n\r\nШаг 2: Настройка скриптов\r\n\r\nОткройте каждый файл в текстовом редакторе и внесите свои данные.\r\n\r\nФайл: generate_payment_data.php\r\n\r\nЭтот скрипт генерирует данные для платежа и возвращает их в формате JSON. Замените \'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ\', \'ВАШ_ID_КАССЫ\', а также данные для подключения к базе данных. Убедитесь, что в строке if (isset($_SESSION[\'steamid64\'])) указан правильный ключ для идентификации пользователя в вашей системе.\r\n\r\n[code]\r\n\r\n[/code]\r\n\r\nФайл: processing.php\r\n\r\nПосле того как вы настроили генератор платежей, скачайте и настройте следующий скрипт. Этот скрипт является URL-адресом для обратного вызова (Callback URL), который будет обрабатывать уведомления от CSHOST. Обязательно замените \'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ\' и данные для подключения к базе данных.
аватарка
Сообщений: 88
Реакции: 28
Клиенты
Шаг 1: Подготовка базы данных ((:

Для корректной работы необходимо создать таблицу для хранения информации о платежах. Подключитесь к вашей базе данных MySQL и выполните следующий SQL-запрос, чтобы создать таблицу payments:

CREATE TABLE `payments` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`idpay` VARCHAR(255) NOT NULL,
`userdata` TEXT NOT NULL,
`sum` DECIMAL(10, 2) NOT NULL,
`ps` VARCHAR(50) NOT NULL,
`status` VARCHAR(50) NOT NULL,
`timestamp` DATETIME NOT NULL,
`processed` BOOLEAN NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `idpay` (`idpay`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


Эта таблица будет хранить уникальный идентификатор платежа, данные пользователя, сумму, статус и отметку времени.

Шаг 2: Настройка скриптов

Откройте каждый файл в текстовом редакторе и внесите свои данные.

Файл: generate_payment_data.php

Этот скрипт генерирует данные для платежа и возвращает их в формате JSON. Замените 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ', 'ВАШ_ID_КАССЫ', а также данные для подключения к базе данных. Убедитесь, что в строке if (isset($_SESSION['steamid64'])) указан правильный ключ для идентификации пользователя в вашей системе.


// Файл: generate_payment_data.php
// Этот скрипт генерирует данные для платежа (idpay, sign) и возвращает их в JSON.

session_start();
header('Content-Type: application/json');

// --- НАСТРОЙКИ ---
// ЗАПОЛНИТЕ ЭТИ ДАННЫЕ ВАШИМИ ЗНАЧЕНИЯМИ
define('CSHOST_SECRET_KEY', 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ');
define('CSHOST_IDCASSA', 'ВАШ_ID_КАССЫ');
define('LOG_FILE_GENERATE', __DIR__ . '/cshost_generate.log');

// --- НАСТРОЙКИ БАЗЫ ДАННЫХ ---
// ЗАПОЛНИТЕ ЭТИ ДАННЫЕ ВАШИМИ ЗНАЧЕНИЯМИ
define('DB_HOST', 'ХОСТ_БД');
define('DB_USER', 'ПОЛЬЗОВАТЕЛЬ_БД');
define('DB_PASS', 'ПАРОЛЬ_БД');
define('DB_NAME', 'ИМЯ_БД');

// --- УНИФИЦИРОВАННАЯ ФУНКЦИЯ ДЛЯ ЛОГИРОВАНИЯ ---
function log_generate($message) {
file_put_contents(LOG_FILE_GENERATE, date('[Y-m-d H:i:s] ') . $message . "\n", FILE_APPEND);
}

// --- ФУНКЦИЯ ГЕНЕРАЦИИ ПОДПИСИ ---
function getFormSignature($userdata, $idcassa, $idpay, $secretkey) {
$hashStr = $userdata . '|' . $idcassa . '|' . $idpay . '|' . $secretkey;
return hash('sha256', $hashStr);
}

// Проверка, что запрос пришел методом GET и содержит необходимые параметры
if ($_SERVER['REQUEST_METHOD'] !== 'GET' || !isset($_GET['sum']) || !isset($_GET['vip_type'])) {
http_response_code(400); // Bad Request
echo json_encode(['error' => 'Invalid request.']);
exit();
}

// Получаем данные из URL-запроса
$sum = htmlspecialchars($_GET['sum']);
$vip_type = htmlspecialchars($_GET['vip_type']);

// Здесь вы должны получить уникальный идентификатор пользователя.
if (isset($_SESSION['steamid64'])) {
$userdata = $_SESSION['steamid64'];
} else {
echo json_encode(['error' => 'User not authenticated.']);
exit();
}

// Генерируем уникальный ID платежа
$idpay = CSHOST_IDCASSA . time() . rand(100, 999);

// Сохраняем информацию о платеже в базе данных со статусом 'pending'
$mysqli_gen = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($mysqli_gen->connect_error) {
echo json_encode(['error' => 'Database connection failed.']);
exit();
}
$mysqli_gen->set_charset("utf8mb4");

$stmt_insert_pending = $mysqli_gen->prepare(
"INSERT INTO payments (idpay, userdata, sum, ps, status, timestamp)
VALUES (?, ?, ?, ?, ?, NOW())
ON DUPLICATE KEY UPDATE
userdata = VALUES(userdata),
sum = VALUES(sum),
ps = VALUES(ps),
status = VALUES(status),
timestamp = NOW()"
);

if ($stmt_insert_pending) {
$status_text_pending = 'pending';
$ps_type = 'cs_pay';
$stmt_insert_pending->bind_param("ssdss", $idpay, $userdata, $sum, $ps_type, $status_text_pending);
$stmt_insert_pending->execute();
$stmt_insert_pending->close();
log_generate("Платеж сохранен со статусом 'pending'. IDPay: {$idpay}");
} else {
log_generate("ОШИБКА ПОДГОТОВКИ SQL ЗАПРОСА: " . $mysqli_gen->error);
echo json_encode(['error' => 'Ошибка подготовки запроса сохранения платежа.']);
exit();
}
$mysqli_gen->close();

// --- ГЕНЕРАЦИЯ ПОДПИСИ (SIGNATURE) ---
$sign = getFormSignature($userdata, CSHOST_IDCASSA, $idpay, CSHOST_SECRET_KEY);

// Возвращаем данные для формы в формате JSON
$response_data = [
'idcassa' => CSHOST_IDCASSA,
'idpay' => $idpay,
'sum' => $sum,
'sign' => $sign,
'userdata' => $userdata
];
echo json_encode($response_data);
?>


Файл: processing.php

После того как вы настроили генератор платежей, скачайте и настройте следующий скрипт. Этот скрипт является URL-адресом для обратного вызова (Callback URL), который будет обрабатывать уведомления от CSHOST. Обязательно замените 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ' и данные для подключения к базе данных.
Ответить Цитата
статус root 16.09.2025 в 15:41#2
это к чему ?
аватарка
Сообщений: 3868
Реакции: 1745
Администрация
это к чему ?
Ответить Цитата
статус Keks423 16.09.2025 в 18:37#3
[b]root[/b], Для веб-dev мануал настройка приёма платежа кс хост cassa сендает post-реквест на сервер к скрипту proccessing.пхп Эт после того как юзер успешно оплатил товар.
аватарка
Сообщений: 88
Реакции: 28
Клиенты
root, Для веб-dev мануал настройка приёма платежа кс хост cassa сендает post-реквест на сервер к скрипту proccessing.пхп Эт после того как юзер успешно оплатил товар.
Ответить Цитата
Информация
Войдите или зарегистрируйтесь для общения на форуме
Перетащите файлы или нажмите
Максимально 5 файлов. Максимальный размер 20 Мб.

Игровые сервера Дополнительные услуги Инфо Сообщество

android

application chrometelegramapiCSHOST.COM.UA 2012-2025 Хостинг игровых серверов