<?php
// Замените YOUR_BOT_TOKEN на токен вашего бота
define('BOT_TOKEN', 'YOUR_BOT_TOKEN');
// Замените YOUR_CHAT_ID на id чата, в который нужно отправлять уведомления
define('CHAT_ID', 'YOUR_CHAT_ID');
// Замените YOUR_PAYMENT_AMOUNT на сумму платежа
define('PAYMENT_AMOUNT', 'YOUR_PAYMENT_AMOUNT');
// Замените YOUR_TINKOFF_TERMINAL_KEY на ваш терминальный ключ Тинькофф Банка
define('TINKOFF_TERMINAL_KEY', 'YOUR_TINKOFF_TERMINAL_KEY');
// Замените YOUR_TINKOFF_SECRET_KEY на ваш секретный ключ Тинькофф Банка
define('TINKOFF_SECRET_KEY', 'YOUR_TINKOFF_SECRET_KEY');
// Функция отправки сообщения в чат
function sendMessage($text) {
$url = 'https://api.telegram.org/bot' . BOT_TOKEN . '/sendMessage';
$data = array(
'chat_id' => CHAT_ID,
'text' => $text
);
$options = array(
'http' => array(
'method' => 'POST',
'content' => json_encode($data),
'header' => "Content-Type: application/json\r\n"
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
// Функция генерации формы оплаты Тинькофф Банка
function generatePaymentForm() {
$amount = PAYMENT_AMOUNT;
$terminalKey = TINKOFF_TERMINAL_KEY;
$description = 'Пожертвование на поддержку проекта';
$orderId = uniqid();
$data = array(
'TerminalKey' => $terminalKey,
'Amount' => $amount,
'OrderId' => $orderId,
'Description' => $description,
'SuccessURL' => 'https://example.com/success.php',
'FailURL' => 'https://example.com/fail.php'
);
ksort($data);
$token = '';
foreach ($data as $key => $value) {
$token .= $value;
}
$token .= TINKOFF_SECRET_KEY;
$data['Token'] = hash('sha256', $token);
$form = '<form method="POST" action="https://securepay.tinkoff.ru/v2/Pay/">';
foreach ($data as $key => $value) {
$form .= '<input type="hidden" name="' . $key . '" value="' . $value . '">';
}
$form .= '<button type="submit">Оплатить ' . $amount . ' руб.</button>';
$form .= '</form>';
return $form;
}
// Получаем данные из входящего запроса
$update = file_get_contents('php://input');
$update = json_decode($update, true);
// Определяем тип входящего сообщения
if (isset($update['message'])) {
$message = $update['message'];
if (isset($message['text'])) {
$text = $message['text'];
if ($text == '/donate') {
// Отправляем форму оплаты Тинькофф Банка
$form = generatePaymentForm();
sendMessage($form);
}
}
} else if (isset($update['callback_query'])) {
// Обрабатываем ответ после оплаты
$callbackQuery = $update['callback_query'];
$data = $callbackQuery['data'];
if (strpos($data, 'tinkoff_payment_success') !== false) {
$amount = PAYMENT_AMOUNT;
$text = 'Благодарим за пожертвование в размере ' . $amount . ' руб.';
sendMessage($text);
}
}
?>