-
Notifications
You must be signed in to change notification settings - Fork 594
Add checkout flow with success and cancellation pages #46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ка и выбор файла для отладки
- Updated function definitions to follow consistent formatting. - Improved logging for user commands in the commands module. - Added test mode for simulating Telegram API interactions. - Implemented error handling and user registration checks. - Created a new SQL script for inserting user data. - Added detailed instructions for obtaining a new Telegram bot token. - Developed test scripts for database connection and bot token validation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a comprehensive Telegram bot checkout flow with testing infrastructure and configuration management. The changes establish a complete PHP-based Telegram bot system for credit card checking with multiple testing utilities and deployment scripts.
- Add complete Telegram bot infrastructure with checkout flow functionality
- Implement testing utilities for token validation, database connectivity, and offline mode testing
- Fix include paths and add proper error handling throughout the codebase
Reviewed Changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| readme.MD | Enhanced documentation with quick start guide and deployment instructions |
| run_bot.php | Main bot runtime with long polling and message processing logic |
| config/config.php | Bot configuration with token and database settings |
| config/variables.php | Safe webhook data processing with fallback handling |
| functions/db.php | Database functions with improved error handling and code formatting |
| functions/functions.php | Helper functions with added getUsernameById function |
| modules/commands.php | Core bot commands handling with inline keyboard support |
| modules/stats.php | Statistics module with embedded JSON configuration |
| modules/checker/*.php | Credit card checker modules with corrected include paths |
| test_*.php | Comprehensive testing utilities for various bot components |
| phpunit.xml | PHPUnit configuration for testing framework |
| *.sh, *.bat | Cross-platform startup scripts |
| TOKEN_SETUP.md, FIXES.md | Documentation for token setup and issue fixes |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| { | ||
| "configurations": [ | ||
| { | ||
| "type": "php", | ||
| "request": "launch", | ||
| "name": "Launch PHP Bot", | ||
| "program": "${workspaceFolder}/SDMN_CheckerBot/${input:phpFile}", | ||
| "runtimeArgs": [ | ||
| "-dxdebug.start_with_request=yes" | ||
| ], | ||
| "env": { | ||
| "XDEBUG_MODE": "debug,develop" | ||
| }, | ||
| "port": 9003 | ||
| } | ||
| ], | ||
| "inputs": [ | ||
| { | ||
| "type": "pickString", | ||
| "id": "phpFile", | ||
| "description": "Select the PHP file to debug", | ||
| "options": [ | ||
| "main.php", | ||
| "run_bot.php", | ||
| "start_bot.php", | ||
| "test_callback.php", | ||
| "test_db.php", | ||
| "diagnose.php" |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JSON configuration is incorrectly placed in a PHP file. This JSON should be in a separate .vscode/launch.json file for VS Code debugging configuration.
| ?> | ||
|
|
||
| { | ||
| "configurations": [ | ||
| { | ||
| "type": "php", | ||
| "request": "launch", | ||
| "name": "Launch PHP Bot", | ||
| "program": "${workspaceFolder}/SDMN_CheckerBot/${input:phpFile}", | ||
| "runtimeArgs": [ | ||
| "-dxdebug.start_with_request=yes" | ||
| ], | ||
| "env": { | ||
| "XDEBUG_MODE": "debug,develop" | ||
| }, | ||
| "port": 9003 | ||
| } | ||
| ], | ||
| "inputs": [ | ||
| { | ||
| "type": "pickString", | ||
| "id": "phpFile", | ||
| "description": "Select the PHP file to debug", | ||
| "options": [ | ||
| "main.php", | ||
| "run_bot.php", | ||
| "start_bot.php", | ||
| "test_callback.php", | ||
| "test_db.php", | ||
| "diagnose.php" | ||
| ] | ||
| } | ||
| ] | ||
| } |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JSON configuration is incorrectly placed in a PHP file. This JSON should be in a separate .vscode/launch.json file for VS Code debugging configuration, not embedded in a PHP stats module.
| ?> | |
| { | |
| "configurations": [ | |
| { | |
| "type": "php", | |
| "request": "launch", | |
| "name": "Launch PHP Bot", | |
| "program": "${workspaceFolder}/SDMN_CheckerBot/${input:phpFile}", | |
| "runtimeArgs": [ | |
| "-dxdebug.start_with_request=yes" | |
| ], | |
| "env": { | |
| "XDEBUG_MODE": "debug,develop" | |
| }, | |
| "port": 9003 | |
| } | |
| ], | |
| "inputs": [ | |
| { | |
| "type": "pickString", | |
| "id": "phpFile", | |
| "description": "Select the PHP file to debug", | |
| "options": [ | |
| "main.php", | |
| "run_bot.php", | |
| "start_bot.php", | |
| "test_callback.php", | |
| "test_db.php", | |
| "diagnose.php" | |
| ] | |
| } | |
| ] | |
| } | |
| ?> |
| mysqli_query($conn, "INSERT INTO dbo.Users (UserId, RegisteredOn) VALUES (1317255118, DATEDIFF(SECOND,'1970-01-01', SYSUTCDATETIME()));"); | ||
| $result = mysqli_query($conn, "SELECT TOP 10 * FROM dbo.Users ORDER BY Id DESC;"); |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SQL syntax uses SQL Server functions (SYSUTCDATETIME, DATEDIFF) but the connection is to MySQL. This will cause a syntax error. Use MySQL equivalent: NOW() or UNIX_TIMESTAMP().
| mysqli_query($conn, "INSERT INTO dbo.Users (UserId, RegisteredOn) VALUES (1317255118, DATEDIFF(SECOND,'1970-01-01', SYSUTCDATETIME()));"); | |
| $result = mysqli_query($conn, "SELECT TOP 10 * FROM dbo.Users ORDER BY Id DESC;"); | |
| mysqli_query($conn, "INSERT INTO Users (UserId, RegisteredOn) VALUES (1317255118, UNIX_TIMESTAMP());"); | |
| $result = mysqli_query($conn, "SELECT * FROM Users ORDER BY Id DESC LIMIT 10;"); |
| // Дополнительные SQL команды | ||
| echo "\n🛠️ Executing additional SQL commands...\n"; | ||
| mysqli_query($conn, "SELECT @@VERSION;"); | ||
| mysqli_query($conn, "USE CheckerBot;"); |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Database name 'CheckerBot' doesn't match the configured database name from config.php. This should use the database name from $config['db']['database'] variable.
| mysqli_query($conn, "USE CheckerBot;"); | |
| mysqli_query($conn, "USE `" . $config['db']['database'] . "`;"); |
| mysqli_query($conn, "SELECT @@VERSION;"); | ||
| mysqli_query($conn, "USE CheckerBot;"); | ||
| mysqli_query($conn, "INSERT INTO dbo.Users (UserId, RegisteredOn) VALUES (1317255118, DATEDIFF(SECOND,'1970-01-01', SYSUTCDATETIME()));"); | ||
| $result = mysqli_query($conn, "SELECT TOP 10 * FROM dbo.Users ORDER BY Id DESC;"); |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SQL syntax uses SQL Server 'TOP' clause and 'dbo' schema prefix, but this is connecting to MySQL. Use MySQL syntax: 'SELECT * FROM users ORDER BY id DESC LIMIT 10'.
| $result = mysqli_query($conn, "SELECT TOP 10 * FROM dbo.Users ORDER BY Id DESC;"); | |
| $result = mysqli_query($conn, "SELECT * FROM users ORDER BY id DESC LIMIT 10;"); |
| | | ||
| */ | ||
| $config['logsID'] = ""; | ||
| $config['logsID'] = "https://t.me/+4o9lzL5S2pA2MWM1"; |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The logsID should be a Telegram chat/channel ID (numeric), not a Telegram URL. The bot API expects a chat_id parameter, not a URL.
| $config['logsID'] = "https://t.me/+4o9lzL5S2pA2MWM1"; | |
| $config['logsID'] = "-1001234567890"; // Replace with your actual channel/group numeric ID |
| $added = addUser($userId); | ||
| if ($added) { | ||
| echo "👥 New user registered: {$userId}\n"; | ||
| } else { | ||
| echo "👥 Existing user: {$userId}\n"; |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The addUser function call may fail if the database connection or user data is not properly initialized, but there's no error handling for database connection failures.
| $added = addUser($userId); | |
| if ($added) { | |
| echo "👥 New user registered: {$userId}\n"; | |
| } else { | |
| echo "👥 Existing user: {$userId}\n"; | |
| try { | |
| $added = addUser($userId); | |
| if ($added) { | |
| echo "👥 New user registered: {$userId}\n"; | |
| } else { | |
| echo "👥 Existing user: {$userId}\n"; | |
| } | |
| } catch (PDOException $e) { | |
| // Handle database connection failure | |
| echo "❌ Database connection error while adding user {$userId}: " . $e->getMessage() . "\n"; | |
| } catch (Exception $e) { | |
| // Handle other possible exceptions from addUser | |
| echo "❌ Error while adding user {$userId}: " . $e->getMessage() . "\n"; |
No description provided.