mirror of
https://github.com/yanguo888/fakabot.git
synced 2026-06-20 20:40:40 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a9c57dc0f7 | |||
| a53d3bbbce | |||
| f714020333 | |||
| caae73e83c | |||
| d96c06c472 | |||
| ba7ec28dc0 | |||
| 16c4def753 |
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
name: Bug Report 🐛
|
||||||
|
about: Report a bug to help us improve
|
||||||
|
title: '[BUG] '
|
||||||
|
labels: bug
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 Bug Description
|
||||||
|
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
## 📋 Steps to Reproduce
|
||||||
|
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
## ✅ Expected Behavior
|
||||||
|
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
## ❌ Actual Behavior
|
||||||
|
|
||||||
|
A clear and concise description of what actually happened.
|
||||||
|
|
||||||
|
## 📸 Screenshots
|
||||||
|
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
## 🖥️ Environment
|
||||||
|
|
||||||
|
- OS: [e.g. Ubuntu 22.04]
|
||||||
|
- Python Version: [e.g. 3.11]
|
||||||
|
- Docker Version: [e.g. 24.0.0]
|
||||||
|
- Bot Version: [e.g. v1.0.0]
|
||||||
|
|
||||||
|
## 📝 Additional Context
|
||||||
|
|
||||||
|
Add any other context about the problem here.
|
||||||
|
|
||||||
|
## 🔒 License Information
|
||||||
|
|
||||||
|
- Customer ID: [e.g. M0001]
|
||||||
|
- License Status: [Valid/Expired]
|
||||||
|
- Expiration Date: [e.g. 2025-02-17]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request 💡
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: '[FEATURE] '
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Feature Description
|
||||||
|
|
||||||
|
A clear and concise description of the feature you'd like to see.
|
||||||
|
|
||||||
|
## 🎯 Problem Statement
|
||||||
|
|
||||||
|
Is your feature request related to a problem? Please describe.
|
||||||
|
Example: I'm always frustrated when [...]
|
||||||
|
|
||||||
|
## 💭 Proposed Solution
|
||||||
|
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
## 🔄 Alternatives Considered
|
||||||
|
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
## 📊 Use Case
|
||||||
|
|
||||||
|
Describe the use case for this feature. Who would benefit from it?
|
||||||
|
|
||||||
|
## 📸 Mockups/Examples
|
||||||
|
|
||||||
|
If applicable, add mockups or examples to help explain your feature.
|
||||||
|
|
||||||
|
## 📝 Additional Context
|
||||||
|
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
|
|
||||||
|
## 💰 Willingness to Pay
|
||||||
|
|
||||||
|
Would you be willing to sponsor this feature?
|
||||||
|
- [ ] Yes, I'd like to discuss pricing
|
||||||
|
- [ ] No, but I think it would be valuable
|
||||||
|
- [ ] Not sure
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
name: Question ❓
|
||||||
|
about: Ask a question about the project
|
||||||
|
title: '[QUESTION] '
|
||||||
|
labels: question
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❓ Question
|
||||||
|
|
||||||
|
A clear and concise question.
|
||||||
|
|
||||||
|
## 📋 Context
|
||||||
|
|
||||||
|
Provide any relevant context or background information.
|
||||||
|
|
||||||
|
## 🔍 What I've Tried
|
||||||
|
|
||||||
|
Describe what you've already tried to solve this issue.
|
||||||
|
|
||||||
|
## 📚 Documentation Checked
|
||||||
|
|
||||||
|
- [ ] I've read the README
|
||||||
|
- [ ] I've checked the FAQ
|
||||||
|
- [ ] I've searched existing issues
|
||||||
|
- [ ] I've checked the documentation
|
||||||
|
|
||||||
|
## 🖥️ Environment (if relevant)
|
||||||
|
|
||||||
|
- OS: [e.g. Ubuntu 22.04]
|
||||||
|
- Python Version: [e.g. 3.11]
|
||||||
|
- Docker Version: [e.g. 24.0.0]
|
||||||
|
- Bot Version: [e.g. v1.0.0]
|
||||||
|
|
||||||
|
## 📝 Additional Information
|
||||||
|
|
||||||
|
Any other information that might be helpful.
|
||||||
+411
@@ -0,0 +1,411 @@
|
|||||||
|
# 🤖 Fakabot - Professional Telegram Auto-Delivery Bot
|
||||||
|
|
||||||
|
[](https://github.com/GUGEGEBAIDU/fakabot/releases)
|
||||||
|
[](https://github.com/GUGEGEBAIDU/fakabot/stargazers)
|
||||||
|
[](https://github.com/GUGEGEBAIDU/fakabot/network)
|
||||||
|
[](https://github.com/GUGEGEBAIDU/fakabot/issues)
|
||||||
|
[]()
|
||||||
|
[]()
|
||||||
|
[](https://t.me/sonhshu)
|
||||||
|
[]()
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
### 🚀 Automated Delivery System | Multiple Payment Methods | Redis High-Performance Cache
|
||||||
|
|
||||||
|
💳 Alipay · WeChat · USDT | 🐳 Docker One-Click Deploy | ⚡ 100x Performance Boost
|
||||||
|
|
||||||
|
**Use Cases**: Digital Products · Online Courses · Software Licenses · Memberships
|
||||||
|
|
||||||
|
🎬 [Live Demo](https://t.me/fakawan_bot) · 📱 [Contact](https://t.me/sonhshu) · 📖 [Documentation](#-quick-start)
|
||||||
|
|
||||||
|
[中文文档](README.md) | English
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ Important Notice
|
||||||
|
|
||||||
|
The current version has removed built-in authorization checks, so **`license.key` is no longer required** for deployment.
|
||||||
|
|
||||||
|
- ✅ Startup no longer depends on license files
|
||||||
|
- ✅ Core business flows (payment/order/delivery) remain unchanged
|
||||||
|
- ✅ Older license-related setup steps in this document are legacy notes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✨ Core Features
|
||||||
|
|
||||||
|
### 💳 Payment System
|
||||||
|
|
||||||
|
Supports **4 mainstream payment methods**:
|
||||||
|
|
||||||
|
| Payment Method | Features | Settlement Speed |
|
||||||
|
|----------------|----------|------------------|
|
||||||
|
| **Alipay** | Face-to-face payment, QR code | Real-time |
|
||||||
|
| **WeChat Pay** | Native payment, QR code | Real-time |
|
||||||
|
| **USDT (TOKEN188)** | TRC20/ERC20, on-chain verification | 1-3 minutes |
|
||||||
|
| **USDT (Lemon Pay)** | Multi-chain support, low fees | Seconds |
|
||||||
|
|
||||||
|
**Features**:
|
||||||
|
- ✅ Automatic payment confirmation · ✅ Payment callback handling · ✅ Order status sync · ✅ Payment timeout handling
|
||||||
|
|
||||||
|
### 🎯 Auto-Delivery System
|
||||||
|
|
||||||
|
**Delivery Methods**:
|
||||||
|
- 📝 Text content (activation codes, accounts, etc.)
|
||||||
|
- 🔗 Download links (files, resources, etc.)
|
||||||
|
- 👥 Group invitations (Telegram groups, channels)
|
||||||
|
|
||||||
|
**Features**:
|
||||||
|
- ⚡ Instant delivery after payment
|
||||||
|
- 🔄 Automatic retry on failure
|
||||||
|
- 📊 Delivery record tracking
|
||||||
|
- 🔒 One-time invitation links (auto-revoke after use)
|
||||||
|
|
||||||
|
### ⚡ Performance Optimization
|
||||||
|
|
||||||
|
**Redis Cache System**:
|
||||||
|
- 💾 Product info cache (5 min)
|
||||||
|
- ⚙️ Config cache (10 min)
|
||||||
|
- 👤 User session cache (1 hour)
|
||||||
|
- 📈 100x performance improvement
|
||||||
|
|
||||||
|
**Rate Limiting**:
|
||||||
|
- 🛡️ User payment limit (5 times/5 min)
|
||||||
|
- 🚫 IP callback limit (100 times/min)
|
||||||
|
- ⏱️ User command limit (20 times/min)
|
||||||
|
|
||||||
|
### 📊 Order Management
|
||||||
|
|
||||||
|
**Admin Features**:
|
||||||
|
- 📋 Order list (all, pending, completed, failed)
|
||||||
|
- 🔍 Order search (by ID, user, product)
|
||||||
|
- 💰 Order statistics (amount, quantity)
|
||||||
|
|
||||||
|
### 👥 User Management
|
||||||
|
|
||||||
|
**User System**:
|
||||||
|
- 👤 User profiles (ID, username, registration time)
|
||||||
|
- 📊 Purchase history (order count, total amount)
|
||||||
|
|
||||||
|
### 🛍️ Product Management
|
||||||
|
|
||||||
|
**Product Features**:
|
||||||
|
- ➕ Add/edit/delete products
|
||||||
|
- 📦 Inventory management (auto-deduct, low stock alert)
|
||||||
|
- 💰 Price management
|
||||||
|
- 📊 Sales statistics
|
||||||
|
|
||||||
|
### 🎨 Admin Panel
|
||||||
|
|
||||||
|
**Management Interface**:
|
||||||
|
- 📊 Dashboard (today's orders, revenue, users)
|
||||||
|
- 📈 Monthly statistics
|
||||||
|
- ⚙️ System settings (payment config, notification config)
|
||||||
|
- 🔔 Message notifications
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
### 🎉 First-Time Setup
|
||||||
|
|
||||||
|
> 💡 **For**: First-time deployment after purchasing license
|
||||||
|
|
||||||
|
#### Step 1: Clone Project
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/GUGEGEBAIDU/fakabot.git
|
||||||
|
cd fakabot
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 2: Configure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Copy config example
|
||||||
|
cp config.json.example config.json
|
||||||
|
|
||||||
|
# Edit config
|
||||||
|
vim config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
**Required fields**:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"BOT_TOKEN": "Your Bot Token", // Get from @BotFather
|
||||||
|
"ADMIN_ID": 123456789, // Your Telegram ID (from @userinfobot)
|
||||||
|
"DOMAIN": "https://yourdomain.com", // Optional
|
||||||
|
"PAYMENTS": {
|
||||||
|
// Payment configuration
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Get Bot Token**:
|
||||||
|
1. Find [@BotFather](https://t.me/BotFather)
|
||||||
|
2. Send `/newbot`
|
||||||
|
3. Follow prompts to create bot
|
||||||
|
4. Get Token
|
||||||
|
|
||||||
|
**Get Admin ID**:
|
||||||
|
1. Find [@userinfobot](https://t.me/userinfobot)
|
||||||
|
2. Send any message
|
||||||
|
3. Get your ID
|
||||||
|
|
||||||
|
#### Step 3: Save License Key (Important!)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Paste your complete license key
|
||||||
|
echo "your_license_key" > license.key
|
||||||
|
|
||||||
|
# Example:
|
||||||
|
echo "M0001|1738310400|abc123def456..." > license.key
|
||||||
|
```
|
||||||
|
|
||||||
|
**Notes**:
|
||||||
|
- ✅ License key must be complete, no extra spaces or newlines
|
||||||
|
- ✅ Filename must be `license.key`
|
||||||
|
- ✅ File location in project root directory
|
||||||
|
|
||||||
|
#### Step 4: Start Service
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start with Docker Compose
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 5: Verify
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check logs
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Should see:
|
||||||
|
# ============================================================
|
||||||
|
# ✅ License verified
|
||||||
|
# 📝 Customer ID: M0001
|
||||||
|
# 📅 Expiration: 2025-02-17
|
||||||
|
# ⏰ Days remaining: 30 days
|
||||||
|
# ============================================================
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 6: Test Bot
|
||||||
|
|
||||||
|
Search for your bot on Telegram, send `/start`
|
||||||
|
|
||||||
|
**If you see welcome message, deployment successful!** 🎉
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 🔄 Renewal Guide
|
||||||
|
|
||||||
|
> 💡 **For**: License expiring or expired, need renewal
|
||||||
|
|
||||||
|
**Important: Renewal only requires replacing license key, all data will be preserved!** ✅
|
||||||
|
|
||||||
|
#### Step 1: Contact for Renewal
|
||||||
|
|
||||||
|
Contact [@sonhshu](https://t.me/sonhshu), choose renewal plan:
|
||||||
|
|
||||||
|
| Plan | Price | Discount |
|
||||||
|
|------|-------|----------|
|
||||||
|
| Monthly | 50 USDT | - |
|
||||||
|
| Quarterly | 135 USDT | 10% |
|
||||||
|
| Yearly | 510 USDT | 15% |
|
||||||
|
|
||||||
|
#### Step 2: Get New License
|
||||||
|
|
||||||
|
After payment, you'll receive a file: `renewal_license_M0001_xxx.txt`
|
||||||
|
|
||||||
|
File content example:
|
||||||
|
```
|
||||||
|
Customer ID: M0001
|
||||||
|
New License: M0001|1740902400|def456...
|
||||||
|
Renewal Period: 30 days
|
||||||
|
New Expiration: 2025-03-19
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 3: SSH to Server
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh root@your_server_ip
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 4: Navigate to Project
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd fakabot
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 5: Replace License
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Method 1: Direct input
|
||||||
|
echo "new_license_key" > license.key
|
||||||
|
|
||||||
|
# Example:
|
||||||
|
echo "M0001|1740902400|def456..." > license.key
|
||||||
|
|
||||||
|
# Method 2: Use editor
|
||||||
|
vim license.key
|
||||||
|
# Delete old license, paste new license, save and exit
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 6: Restart Service
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 7: Verify Renewal
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check logs
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Should see:
|
||||||
|
# ============================================================
|
||||||
|
# ✅ License verified
|
||||||
|
# 📝 Customer ID: M0001
|
||||||
|
# 📅 Expiration: 2025-03-19 ← New expiration date
|
||||||
|
# ⏰ Days remaining: 30 days
|
||||||
|
# ============================================================
|
||||||
|
```
|
||||||
|
|
||||||
|
**If you see new expiration date, renewal successful!** 🎉
|
||||||
|
|
||||||
|
#### ✅ Data Preservation After Renewal
|
||||||
|
|
||||||
|
**All data preserved**:
|
||||||
|
- ✅ All product configurations
|
||||||
|
- ✅ All order records
|
||||||
|
- ✅ All customer data
|
||||||
|
- ✅ config.json settings
|
||||||
|
- ✅ Database files
|
||||||
|
|
||||||
|
**No need to reconfigure anything!** ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💰 Subscription Pricing
|
||||||
|
|
||||||
|
### Purchase Options
|
||||||
|
|
||||||
|
| Plan | Duration | Price | Discount | Best For |
|
||||||
|
|------|----------|-------|----------|----------|
|
||||||
|
| **Monthly** | 30 days | 50 USDT | - | Trial users |
|
||||||
|
| **Quarterly** | 90 days | 135 USDT | 10% off | Regular users |
|
||||||
|
| **Yearly** | 365 days | 510 USDT | 15% off | Long-term users |
|
||||||
|
|
||||||
|
### How to Purchase
|
||||||
|
|
||||||
|
1. **Contact Customer Service**
|
||||||
|
- Telegram: [@sonhshu](https://t.me/sonhshu)
|
||||||
|
- Provide your requirements
|
||||||
|
|
||||||
|
2. **Make Payment**
|
||||||
|
- USDT (TRC20): `TDZM5DSSq8SrB8QTSBHyNwrcTswtCjKs9t`
|
||||||
|
- Provide transaction hash
|
||||||
|
|
||||||
|
3. **Receive License**
|
||||||
|
- Get license key file within 5 minutes
|
||||||
|
- Includes complete deployment guide
|
||||||
|
|
||||||
|
4. **Deploy and Use**
|
||||||
|
- Follow documentation to deploy
|
||||||
|
- Start earning immediately
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📞 Contact Us
|
||||||
|
|
||||||
|
### Customer Service
|
||||||
|
|
||||||
|
- **Telegram**: [@sonhshu](https://t.me/sonhshu)
|
||||||
|
- **Demo Bot**: [@fakawan_bot](https://t.me/fakawan_bot)
|
||||||
|
- **Response Time**: 24/7 online
|
||||||
|
|
||||||
|
### Technical Support
|
||||||
|
|
||||||
|
- **GitHub Issues**: [Submit Issue](https://github.com/GUGEGEBAIDU/fakabot/issues)
|
||||||
|
- **Documentation**: [Complete Documentation](https://github.com/GUGEGEBAIDU/fakabot#readme)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ Disclaimer
|
||||||
|
|
||||||
|
**This project is for learning and legal commercial use only.**
|
||||||
|
|
||||||
|
### By using this project, you agree to:
|
||||||
|
|
||||||
|
- ✅ Comply with the laws and regulations of your country/region
|
||||||
|
- ✅ Use only for legal commercial purposes
|
||||||
|
- ✅ Take full responsibility for any consequences
|
||||||
|
- ✅ Not infringe on others' legal rights
|
||||||
|
|
||||||
|
### Developer Statement:
|
||||||
|
|
||||||
|
- 📢 Developers are not responsible for users' usage behavior
|
||||||
|
- 📢 Not liable for any losses caused by using this project
|
||||||
|
- 📢 Reserve the right to terminate service and revoke licenses at any time
|
||||||
|
- 📢 Reserve the right to refuse service to any user
|
||||||
|
|
||||||
|
### Strictly Prohibited Uses:
|
||||||
|
|
||||||
|
- ❌ Gambling, pornography, or illegal content sales
|
||||||
|
- ❌ Distribution of content that infringes intellectual property
|
||||||
|
- ❌ Fraud, pyramid schemes, or illegal activities
|
||||||
|
- ❌ Money laundering or illegal fund transfers
|
||||||
|
- ❌ Other activities that violate laws and regulations
|
||||||
|
|
||||||
|
### Legal Use Examples:
|
||||||
|
|
||||||
|
- ✅ Online courses and educational content sales
|
||||||
|
- ✅ Legitimate software license sales
|
||||||
|
- ✅ Membership subscription services
|
||||||
|
- ✅ Digital art and music sales
|
||||||
|
- ✅ E-books and document sales
|
||||||
|
|
||||||
|
**If users are found using this project for illegal purposes, developers will immediately terminate service and cooperate with relevant authorities.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
**Commercial License**
|
||||||
|
|
||||||
|
This project uses a commercial license:
|
||||||
|
|
||||||
|
### Allowed:
|
||||||
|
- ✅ Personal learning and research
|
||||||
|
- ✅ Legal commercial use after purchasing license
|
||||||
|
- ✅ Modification and customization within license scope
|
||||||
|
|
||||||
|
### Prohibited:
|
||||||
|
- ❌ Commercial use without authorization
|
||||||
|
- ❌ Reselling or distributing license keys
|
||||||
|
- ❌ Removing or modifying the authorization system
|
||||||
|
- ❌ Use for any illegal purposes
|
||||||
|
|
||||||
|
### License Terms:
|
||||||
|
- License keys are for purchaser's personal use only
|
||||||
|
- Non-transferable, non-rentable, non-shareable
|
||||||
|
- Violation of license agreement will result in immediate termination
|
||||||
|
- Developers reserve the right to pursue legal action
|
||||||
|
|
||||||
|
**Copyright © 2025 Fakabot Team. All rights reserved.**
|
||||||
|
|
||||||
|
See [Terms of Service](TERMS_OF_SERVICE.md) for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
Made with ❤️ by Fakabot Team
|
||||||
|
|
||||||
|
[Get Started](#-quick-start) · [View Demo](https://t.me/fakawan_bot) · [Contact](https://t.me/sonhshu)
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
# 🤖 Fakabot - 专业的 Telegram 自动发卡机器人
|
# 🤖 Fakabot - 专业的 Telegram 自动发卡机器人
|
||||||
|
|
||||||
[]()
|
[](https://github.com/GUGEGEBAIDU/fakabot/releases)
|
||||||
[]()
|
[](https://github.com/GUGEGEBAIDU/fakabot/stargazers)
|
||||||
[](https://t.me/sonhshu)
|
[](https://github.com/GUGEGEBAIDU/fakabot/network)
|
||||||
[]()
|
[](https://github.com/GUGEGEBAIDU/fakabot/issues)
|
||||||
|
[]()
|
||||||
|
[]()
|
||||||
|
[](https://t.me/sonhshu)
|
||||||
|
[]()
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
@@ -11,9 +15,11 @@
|
|||||||
|
|
||||||
💳 支付宝 · 微信 · USDT | 🐳 Docker 一键部署 | ⚡ 性能提升 100 倍
|
💳 支付宝 · 微信 · USDT | 🐳 Docker 一键部署 | ⚡ 性能提升 100 倍
|
||||||
|
|
||||||
**适用场景**:知识付费 · 虚拟商品 · 在线课程 · 软件授权 · 会员订阅
|
**适用场景**:知识付费 · 虚拟商品 · 在线课程 · 软件交付 · 会员服务
|
||||||
|
|
||||||
🎬 [在线演示](https://t.me/fakawan_bot) · 📱 [联系客服](https://t.me/sonhshu) · 📖 [完整文档](#-快速开始)
|
🎬 [在线演示](https://t.me/fakawan_bot) · 📱 [联系客服](https://t.me/szsh66) · 📖 [完整文档](#-快速开始)
|
||||||
|
|
||||||
|
中文文档 | [English](README.en.md)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -21,12 +27,11 @@
|
|||||||
|
|
||||||
## ⚠️ 重要说明
|
## ⚠️ 重要说明
|
||||||
|
|
||||||
本项目需要**授权码**才能运行。代码已内置授权验证系统,无法绕过。
|
当前版本已移除内置授权校验逻辑,部署时**不再需要 `license.key`**。
|
||||||
|
|
||||||
- ✅ 授权码采用签名验证,无法伪造
|
- ✅ 无需授权文件即可启动
|
||||||
- ✅ 到期前 7 天自动提醒
|
- ✅ 原有支付、订单、发货等业务流程保持不变
|
||||||
- ✅ 到期后自动停止运行
|
- ✅ 历史文档中涉及授权码的步骤属于旧版本说明
|
||||||
- ✅ 支持远程续费,无需重新部署
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -112,9 +117,8 @@
|
|||||||
</td>
|
</td>
|
||||||
<td width="50%">
|
<td width="50%">
|
||||||
|
|
||||||
- 🔄 订单状态(待支付/已支付/已完成/已退款)
|
- 🔄 订单状态(待支付/已支付/已完成/已取消)
|
||||||
- 💰 订单统计(金额/数量/趋势)
|
- 💰 订单统计(金额/数量)
|
||||||
- 📊 数据导出(Excel/CSV)
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -125,10 +129,7 @@
|
|||||||
强大的用户管理功能:
|
强大的用户管理功能:
|
||||||
|
|
||||||
**用户信息**:
|
**用户信息**:
|
||||||
- 👤 用户列表 · 📊 用户统计 · 💰 消费记录 · 📈 用户画像
|
- 👤 用户列表 · 📊 用户统计 · 💰 消费记录
|
||||||
|
|
||||||
**用户操作**:
|
|
||||||
- 🚫 黑名单管理 · 👑 VIP 会员 · 💬 用户标签 · 📢 消息推送
|
|
||||||
|
|
||||||
### 🛍️ 商品管理
|
### 🛍️ 商品管理
|
||||||
|
|
||||||
@@ -140,22 +141,20 @@
|
|||||||
**库存管理**:
|
**库存管理**:
|
||||||
- 📥 批量导入卡密 · 📊 库存统计 · ⚠️ 库存预警 · 🔄 自动补货提醒
|
- 📥 批量导入卡密 · 📊 库存统计 · ⚠️ 库存预警 · 🔄 自动补货提醒
|
||||||
|
|
||||||
**商品分类**:
|
|
||||||
- 📁 分类管理 · 🏷️ 标签系统 · 🔝 排序设置 · 👁️ 显示/隐藏
|
|
||||||
|
|
||||||
### 🎨 管理后台
|
### 🎨 管理后台
|
||||||
|
|
||||||
专业的管理后台界面:
|
专业的管理后台界面:
|
||||||
|
|
||||||
**数据统计**:
|
**数据统计**:
|
||||||
- 📊 今日数据(订单/收入/用户) · 📈 本月数据(趋势图表)
|
- 📊 今日数据(订单/收入/用户)
|
||||||
- 💰 总收入统计 · 👥 用户增长曲线
|
- 📈 本月数据统计
|
||||||
|
- 💰 总收入统计
|
||||||
|
|
||||||
**快速操作**:
|
**快速操作**:
|
||||||
- ⚡ 一键发货 · 💸 一键退款 · 📢 批量通知 · 🔄 数据刷新
|
- ⚡ 一键发货 · 📢 批量通知 · 🔄 数据刷新
|
||||||
|
|
||||||
**系统设置**:
|
**系统设置**:
|
||||||
- ⚙️ 基础配置 · 💳 支付配置 · 📧 通知配置 · 🎨 界面定制
|
- ⚙️ 基础配置 · 💳 支付配置 · 📧 通知配置
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -163,7 +162,7 @@
|
|||||||
|
|
||||||
### 🎉 首次使用教程
|
### 🎉 首次使用教程
|
||||||
|
|
||||||
> 💡 **适用于**:刚购买授权码,第一次部署机器人
|
> 💡 **适用于**:第一次部署机器人(免授权版本)
|
||||||
|
|
||||||
#### 第 1 步:克隆项目
|
#### 第 1 步:克隆项目
|
||||||
|
|
||||||
@@ -206,44 +205,23 @@ vim config.json
|
|||||||
2. 发送任意消息
|
2. 发送任意消息
|
||||||
3. 获取你的 ID
|
3. 获取你的 ID
|
||||||
|
|
||||||
#### 第 3 步:保存授权码(重要!)
|
#### 第 3 步:启动服务
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 把授权码完整复制进去
|
# 使用 Docker Compose 启动(兼容新旧命令)
|
||||||
echo "你的授权码" > license.key
|
docker compose up -d || docker-compose up -d
|
||||||
|
|
||||||
# 示例:
|
|
||||||
echo "M0001|1738310400|abc123def456..." > license.key
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**注意**:
|
#### 第 4 步:验证运行
|
||||||
- ✅ 授权码必须完整,不要有多余的空格或换行
|
|
||||||
- ✅ 文件名必须是 `license.key`
|
|
||||||
- ✅ 文件位置在项目根目录
|
|
||||||
|
|
||||||
#### 第 4 步:启动服务
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 使用 Docker Compose 启动
|
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 第 5 步:验证运行
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看日志
|
# 查看日志
|
||||||
docker-compose logs -f
|
docker compose logs -f bot || docker-compose logs -f bot
|
||||||
|
|
||||||
# 应该看到:
|
# 看到机器人启动且无报错即可
|
||||||
# ============================================================
|
|
||||||
# ✅ 授权验证通过
|
|
||||||
# 📝 客户ID: M0001
|
|
||||||
# 📅 到期时间: 2025-02-17
|
|
||||||
# ⏰ 剩余天数: 30 天
|
|
||||||
# ============================================================
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 第 6 步:测试机器人
|
#### 第 5 步:测试机器人
|
||||||
|
|
||||||
在 Telegram 搜索你的机器人,发送 `/start`
|
在 Telegram 搜索你的机器人,发送 `/start`
|
||||||
|
|
||||||
@@ -251,93 +229,73 @@ docker-compose logs -f
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 🔄 续费教程
|
### 🧭 宝塔面板命令行一步一步安装(免授权版)
|
||||||
|
|
||||||
> 💡 **适用于**:授权码快到期或已过期,需要续费
|
> 适合你当前场景:已经在宝塔面板里打开「命令行」。
|
||||||
|
|
||||||
**重要:续费只需要替换授权码,所有数据都会保留!** ✅
|
#### 0)进入部署目录
|
||||||
|
|
||||||
#### 第 1 步:联系客服续费
|
|
||||||
|
|
||||||
联系 [@sonhshu](https://t.me/sonhshu),选择续费套餐:
|
|
||||||
|
|
||||||
| 套餐 | 价格 | 优惠 |
|
|
||||||
|------|------|------|
|
|
||||||
| 月卡 | 50 USDT | - |
|
|
||||||
| 季卡 | 135 USDT | 10% |
|
|
||||||
| 年卡 | 510 USDT | 15% |
|
|
||||||
|
|
||||||
#### 第 2 步:支付并获取新授权码
|
|
||||||
|
|
||||||
支付后,你会收到一个文件:`续费授权码_M0001_xxx.txt`
|
|
||||||
|
|
||||||
文件内容示例:
|
|
||||||
```
|
|
||||||
客户ID: M0001
|
|
||||||
新授权码: M0001|1740902400|def456...
|
|
||||||
续费时长: 30 天
|
|
||||||
新到期日期: 2025-03-19
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 第 3 步:SSH 登录服务器
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh root@你的服务器IP
|
cd /www/wwwroot
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 第 4 步:进入项目目录
|
#### 1)确认 Docker / Compose 可用
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
docker -v
|
||||||
|
docker compose version || docker-compose -v
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2)克隆项目(使用你的仓库)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/yanguo0905/fakabot.git
|
||||||
cd fakabot
|
cd fakabot
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 第 5 步:替换授权码
|
#### 3)创建配置并填写参数
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 方法 1:直接输入
|
cp config.json.example config.json
|
||||||
echo "新的授权码" > license.key
|
vim config.json
|
||||||
|
|
||||||
# 示例:
|
|
||||||
echo "M0001|1740902400|def456..." > license.key
|
|
||||||
|
|
||||||
# 方法 2:使用编辑器
|
|
||||||
vim license.key
|
|
||||||
# 删除旧授权码,粘贴新授权码,保存退出
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 第 6 步:重启服务
|
最少填写:
|
||||||
|
- `BOT_TOKEN`(从 @BotFather 获取)
|
||||||
|
- `ADMIN_ID`(从 @userinfobot 获取)
|
||||||
|
- 你实际使用的支付参数
|
||||||
|
|
||||||
|
#### 4)启动服务(无需授权文件)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose restart
|
docker compose up -d || docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 第 7 步:验证续费
|
#### 5)查看运行日志
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看日志
|
docker compose logs -f bot || docker-compose logs -f bot
|
||||||
docker-compose logs -f
|
|
||||||
|
|
||||||
# 应该看到:
|
|
||||||
# ============================================================
|
|
||||||
# ✅ 授权验证通过
|
|
||||||
# 📝 客户ID: M0001
|
|
||||||
# 📅 到期时间: 2025-03-19 ← 新的到期时间
|
|
||||||
# ⏰ 剩余天数: 30 天
|
|
||||||
# ============================================================
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**如果看到新的到期时间,说明续费成功!** 🎉
|
看到机器人启动且无报错后,`Ctrl + C` 退出日志。
|
||||||
|
|
||||||
#### ✅ 续费后数据保留情况
|
#### 6)Telegram 验证
|
||||||
|
|
||||||
**以下数据全部保留**:
|
给机器人发送 `/start`,能收到欢迎消息即部署成功。
|
||||||
- ✅ 所有商品配置
|
|
||||||
- ✅ 所有订单记录
|
|
||||||
- ✅ 所有客户数据
|
|
||||||
- ✅ config.json 配置
|
|
||||||
- ✅ 数据库文件
|
|
||||||
|
|
||||||
**不需要重新配置任何东西!** ✅
|
#### 7)常用维护命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 重启
|
||||||
|
docker compose restart || docker-compose restart
|
||||||
|
|
||||||
|
# 查看容器状态
|
||||||
|
docker compose ps || docker-compose ps
|
||||||
|
|
||||||
|
# 更新代码并重建
|
||||||
|
git pull
|
||||||
|
docker compose up -d --build || docker-compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -356,14 +314,11 @@ cp config.json.example config.json
|
|||||||
# 3. 编辑配置(填写 Bot Token、管理员 ID 等)
|
# 3. 编辑配置(填写 Bot Token、管理员 ID 等)
|
||||||
vim config.json
|
vim config.json
|
||||||
|
|
||||||
# 4. 保存授权码
|
# 4. 一键启动
|
||||||
echo "你的授权码" > license.key
|
docker compose up -d || docker-compose up -d
|
||||||
|
|
||||||
# 5. 一键启动
|
# 5. 查看日志
|
||||||
docker-compose up -d
|
docker compose logs -f bot || docker-compose logs -f bot
|
||||||
|
|
||||||
# 6. 查看日志
|
|
||||||
docker-compose logs -f
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**就这么简单!** ✅
|
**就这么简单!** ✅
|
||||||
@@ -395,7 +350,7 @@ docker-compose ps
|
|||||||
git pull && docker-compose up -d --build
|
git pull && docker-compose up -d --build
|
||||||
|
|
||||||
# 备份数据
|
# 备份数据
|
||||||
tar -czf backup.tar.gz data/ config.json license.key
|
tar -czf backup.tar.gz data/ config.json
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -412,11 +367,7 @@ tar -czf backup.tar.gz data/ config.json license.key
|
|||||||
|
|
||||||
#### 部署步骤
|
#### 部署步骤
|
||||||
|
|
||||||
**第 1 步:购买授权码**
|
**第 1 步:准备服务器**
|
||||||
|
|
||||||
联系客服:[@sonhshu](https://t.me/sonhshu)
|
|
||||||
|
|
||||||
**第 2 步:准备服务器**
|
|
||||||
|
|
||||||
推荐服务商:
|
推荐服务商:
|
||||||
- 阿里云轻量应用服务器(¥24/月)
|
- 阿里云轻量应用服务器(¥24/月)
|
||||||
@@ -426,7 +377,7 @@ tar -czf backup.tar.gz data/ config.json license.key
|
|||||||
|
|
||||||
配置建议:1核2GB,20GB 硬盘
|
配置建议:1核2GB,20GB 硬盘
|
||||||
|
|
||||||
**第 3 步:克隆项目**
|
**第 2 步:克隆项目**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# SSH 登录服务器
|
# SSH 登录服务器
|
||||||
@@ -437,7 +388,7 @@ git clone https://github.com/GUGEGEBAIDU/fakabot.git
|
|||||||
cd fakabot
|
cd fakabot
|
||||||
```
|
```
|
||||||
|
|
||||||
**第 4 步:安装依赖**
|
**第 3 步:安装依赖**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 更新系统
|
# 更新系统
|
||||||
@@ -455,7 +406,7 @@ systemctl start redis
|
|||||||
systemctl enable redis
|
systemctl enable redis
|
||||||
```
|
```
|
||||||
|
|
||||||
**第 5 步:配置机器人**
|
**第 4 步:配置机器人**
|
||||||
|
|
||||||
1. **创建 Telegram Bot**
|
1. **创建 Telegram Bot**
|
||||||
- 找 [@BotFather](https://t.me/BotFather)
|
- 找 [@BotFather](https://t.me/BotFather)
|
||||||
@@ -512,13 +463,7 @@ vim config.json
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**第 6 步:保存授权码**
|
**第 5 步:启动机器人**
|
||||||
|
|
||||||
```bash
|
|
||||||
echo "你的授权码" > license.key
|
|
||||||
```
|
|
||||||
|
|
||||||
**第 7 步:启动机器人**
|
|
||||||
|
|
||||||
方式 A:直接运行(测试用)
|
方式 A:直接运行(测试用)
|
||||||
|
|
||||||
@@ -568,16 +513,15 @@ systemctl enable fakabot
|
|||||||
systemctl status fakabot
|
systemctl status fakabot
|
||||||
```
|
```
|
||||||
|
|
||||||
**第 8 步:验证运行**
|
**第 6 步:验证运行**
|
||||||
|
|
||||||
在 Telegram 搜索你的机器人,发送 `/start`
|
在 Telegram 搜索你的机器人,发送 `/start`
|
||||||
|
|
||||||
授权验证成功提示:
|
启动成功提示(示例):
|
||||||
```
|
```
|
||||||
✅ 授权验证通过
|
✅ Bot 启动成功
|
||||||
📝 客户ID: C001
|
✅ 数据库初始化完成
|
||||||
📅 到期时间: 2025-11-18
|
✅ 支付模块加载完成
|
||||||
⏰ 剩余天数: 30 天
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -970,45 +914,26 @@ crontab -e
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 💰 订阅价格
|
## 🧾 部署与维护说明
|
||||||
|
|
||||||
| 套餐 | 价格 | 优惠 | 推荐 |
|
- 当前版本为 **免授权运行**:不需要 `license.key`,也没有续费步骤。
|
||||||
|------|------|------|------|
|
- 若你看到旧文档里“授权码/续费/到期”相关内容,以本文档最新内容为准。
|
||||||
| 月付 | 50 USDT/月 | - | 试用 ⭐ |
|
- 推荐优先使用 Docker Compose(`docker compose`)部署,维护成本最低。
|
||||||
| 季付 | 135 USDT/季 | 10% | 推荐 ⭐⭐ |
|
|
||||||
| 年付 | 510 USDT/年 | 15% | 最划算 ⭐⭐⭐ |
|
|
||||||
|
|
||||||
### 购买方式
|
|
||||||
|
|
||||||
**联系客服**: [@sonhshu](https://t.me/sonhshu)
|
|
||||||
|
|
||||||
**支付方式**: USDT (TRC20)
|
|
||||||
```
|
|
||||||
TDZM5DSSq8SrB8QTSBHyNwrcTswtCjKs9t
|
|
||||||
```
|
|
||||||
|
|
||||||
> 💡 支付后请提供交易哈希和 Telegram 用户名,10 分钟内开通授权
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ❓ 常见问题
|
## ❓ 常见问题
|
||||||
|
|
||||||
### 购买相关
|
### 部署相关
|
||||||
|
|
||||||
**Q: 可以试用吗?**
|
**Q: 还需要授权码吗?**
|
||||||
A: 建议先购买月付(50 USDT)试用一个月,满意后再升级年付。首次购买 7 天内不满意可全额退款。
|
A: 不需要。当前版本部署与运行均不依赖 `license.key`。
|
||||||
|
|
||||||
**Q: 授权码会过期吗?**
|
**Q: 旧文档里出现授权码步骤怎么办?**
|
||||||
A: 是的,月付30天,季付90天,年付365天。到期前7天会自动提醒。
|
A: 直接跳过即可;请以本 README 的“重要说明”和“快速开始”为准。
|
||||||
|
|
||||||
**Q: 可以退款吗?**
|
|
||||||
A: 首次购买7天内不满意可申请全额退款。
|
|
||||||
|
|
||||||
**Q: 包含技术支持吗?**
|
**Q: 包含技术支持吗?**
|
||||||
A: 是的,所有订阅都包含技术支持,响应时间通常 1-24 小时。
|
A: 是,建议优先通过仓库 Issue 或你使用的交付渠道反馈问题。
|
||||||
|
|
||||||
**Q: 续费如何操作?**
|
|
||||||
A: 联系客服,支付续费金额,获得新授权码,替换 license.key 文件即可。
|
|
||||||
|
|
||||||
### 技术相关
|
### 技术相关
|
||||||
|
|
||||||
@@ -1019,7 +944,7 @@ A: 最低 1核1GB,推荐 1核2GB。月费约 $5-10。
|
|||||||
A: 不是必须的,但强烈推荐。域名可以配置 SSL,更安全。
|
A: 不是必须的,但强烈推荐。域名可以配置 SSL,更安全。
|
||||||
|
|
||||||
**Q: 支持哪些支付方式?**
|
**Q: 支持哪些支付方式?**
|
||||||
A: 机器人支持支付宝、微信、USDT (TOKEN188)、USDT (柠檬支付)。购买授权使用 USDT (TRC20)。
|
A: 机器人支持支付宝、微信、USDT (TOKEN188)、USDT (柠檬支付)。
|
||||||
|
|
||||||
**Q: 可以自定义界面吗?**
|
**Q: 可以自定义界面吗?**
|
||||||
A: 可以,修改配置文件中的文案和按钮即可。
|
A: 可以,修改配置文件中的文案和按钮即可。
|
||||||
@@ -1033,9 +958,6 @@ A: 使用 SQLite 数据库,存储在 fakabot.db 文件中。
|
|||||||
**Q: 如何备份数据?**
|
**Q: 如何备份数据?**
|
||||||
A: 定期备份 fakabot.db 文件和 config.json 配置文件。
|
A: 定期备份 fakabot.db 文件和 config.json 配置文件。
|
||||||
|
|
||||||
**Q: 授权码丢了怎么办?**
|
|
||||||
A: 联系客服,提供购买记录,可以重新发送授权码。
|
|
||||||
|
|
||||||
### 使用相关
|
### 使用相关
|
||||||
|
|
||||||
**Q: 如何添加商品?**
|
**Q: 如何添加商品?**
|
||||||
@@ -1052,35 +974,67 @@ A: 当前版本不支持,后续版本会添加。
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔒 授权保护
|
## 🔐 运行与安全说明
|
||||||
|
|
||||||
本项目采用内置授权验证,代码中嵌入了授权检查逻辑。
|
当前项目已移除内置授权校验逻辑,默认按“免授权”方式运行。
|
||||||
|
|
||||||
**无法绕过的原因**:
|
**建议你重点关注以下安全项:**
|
||||||
- ✅ 授权检查嵌入在每个文件中
|
- ✅ 正确配置支付回调地址与签名密钥
|
||||||
- ✅ 删除授权检查会导致程序崩溃
|
- ✅ 为服务器开启防火墙与最小权限
|
||||||
- ✅ 授权码采用签名验证,无法伪造
|
- ✅ 定期备份 `fakabot.db` 与 `config.json`
|
||||||
- ✅ 破解成本远高于购买价格
|
- ✅ 使用 HTTPS / 反向代理保护管理入口
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📞 联系我们
|
## 📞 联系我们
|
||||||
|
|
||||||
- **Telegram 客服**: [@sonhshu](https://t.me/sonhshu)
|
- **Telegram 客服**: [@sonhshu](https://t.me/sonhshu)
|
||||||
- **演示机器人**: [@fakawan_bot](https://t.me/fakawan_bot)
|
|
||||||
- **GitHub 项目**: [GUGEGEBAIDU/fakabot](https://github.com/GUGEGEBAIDU/fakabot)
|
---
|
||||||
|
|
||||||
|
## ⚠️ 免责声明
|
||||||
|
|
||||||
|
**本项目仅供学习和合法商业用途使用。**
|
||||||
|
|
||||||
|
### 使用本项目即表示您同意:
|
||||||
|
|
||||||
|
- ✅ 遵守所在国家/地区的法律法规
|
||||||
|
- ✅ 仅用于合法的商业用途
|
||||||
|
- ✅ 对使用本项目产生的任何后果自行负责
|
||||||
|
- ✅ 不侵犯他人合法权益
|
||||||
|
|
||||||
|
### 开发者声明:
|
||||||
|
|
||||||
|
- 📢 本项目开发者不对用户的使用行为负责
|
||||||
|
- 📢 不对因使用本项目造成的任何损失负责
|
||||||
|
- 📢 保留随时停止服务的权利
|
||||||
|
- 📢 保留拒绝向任何用户提供服务的权利
|
||||||
|
|
||||||
|
### 明确禁止用途:
|
||||||
|
|
||||||
|
- ❌ 赌博、色情等非法内容销售
|
||||||
|
- ❌ 侵犯知识产权的内容分发
|
||||||
|
- ❌ 诈骗、传销等违法行为
|
||||||
|
- ❌ 洗钱、非法资金转移
|
||||||
|
- ❌ 其他违反法律法规的行为
|
||||||
|
|
||||||
|
### 合法用途示例:
|
||||||
|
|
||||||
|
- ✅ 在线课程、教育内容销售
|
||||||
|
- ✅ 正版软件与数字内容销售
|
||||||
|
- ✅ 会员服务
|
||||||
|
- ✅ 数字艺术品、音乐销售
|
||||||
|
- ✅ 电子书、文档资料销售
|
||||||
|
|
||||||
|
**如发现用户将本项目用于非法用途,开发者将立即终止服务并配合相关部门调查。**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📄 许可证
|
## 📄 许可证
|
||||||
|
|
||||||
本项目为商业软件,采用订阅制授权。
|
请遵守仓库中许可证文件与服务条款中的约定;本文档不再包含任何授权码激活要求。
|
||||||
|
|
||||||
未经授权,禁止:
|
详见 [服务条款](TERMS_OF_SERVICE.md)
|
||||||
- 反编译或反向工程
|
|
||||||
- 分发或转售
|
|
||||||
- 删除版权声明
|
|
||||||
- 商业使用(需购买授权)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1090,6 +1044,6 @@ A: 当前版本不支持,后续版本会添加。
|
|||||||
|
|
||||||
Made with ❤️ by Fakabot Team
|
Made with ❤️ by Fakabot Team
|
||||||
|
|
||||||
[开始使用](#-快速开始) · [查看演示](https://t.me/fakawan_bot) · [联系客服](https://t.me/sonhshu)
|
[开始使用](#-快速开始) · [查看演示](https://t.me/fakawan_bot) · [联系客服](https://t.me/szsh66)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,276 @@
|
|||||||
|
# 服务条款 (Terms of Service)
|
||||||
|
|
||||||
|
**生效日期**: 2025-01-18
|
||||||
|
**最后更新**: 2025-01-18
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 服务说明
|
||||||
|
|
||||||
|
### 1.1 服务内容
|
||||||
|
|
||||||
|
Fakabot(以下简称"本项目")提供基于 Telegram 的自动发卡机器人服务,包括但不限于:
|
||||||
|
|
||||||
|
- 商品管理功能
|
||||||
|
- 订单处理功能
|
||||||
|
- 支付集成功能
|
||||||
|
- 自动发货功能
|
||||||
|
- 用户管理功能
|
||||||
|
|
||||||
|
### 1.2 授权模式
|
||||||
|
|
||||||
|
本项目采用授权码模式运行:
|
||||||
|
- 用户需购买授权码才能使用
|
||||||
|
- 授权码有有效期限制
|
||||||
|
- 授权码仅限购买者本人使用
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 用户责任与义务
|
||||||
|
|
||||||
|
### 2.1 合法使用
|
||||||
|
|
||||||
|
用户承诺:
|
||||||
|
|
||||||
|
- ✅ 仅将本项目用于合法的商业用途
|
||||||
|
- ✅ 遵守所在国家/地区的法律法规
|
||||||
|
- ✅ 不侵犯他人的合法权益
|
||||||
|
- ✅ 不从事任何违法违规活动
|
||||||
|
|
||||||
|
### 2.2 禁止行为
|
||||||
|
|
||||||
|
用户明确承诺不将本项目用于以下用途:
|
||||||
|
|
||||||
|
#### 严格禁止:
|
||||||
|
- ❌ 赌博、博彩相关内容
|
||||||
|
- ❌ 色情、淫秽内容
|
||||||
|
- ❌ 毒品、违禁品交易
|
||||||
|
- ❌ 诈骗、传销活动
|
||||||
|
- ❌ 洗钱、非法资金转移
|
||||||
|
- ❌ 侵犯知识产权的内容
|
||||||
|
- ❌ 恐怖主义、暴力内容
|
||||||
|
- ❌ 其他违反法律法规的行为
|
||||||
|
|
||||||
|
### 2.3 合规义务
|
||||||
|
|
||||||
|
用户需要:
|
||||||
|
|
||||||
|
- 📋 确保销售的商品/服务合法合规
|
||||||
|
- 📋 遵守支付平台的使用规则
|
||||||
|
- 📋 遵守 Telegram 的服务条款
|
||||||
|
- 📋 保护用户隐私和数据安全
|
||||||
|
- 📋 及时处理客户投诉和纠纷
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 开发者权利与免责
|
||||||
|
|
||||||
|
### 3.1 服务提供
|
||||||
|
|
||||||
|
开发者承诺:
|
||||||
|
|
||||||
|
- 提供稳定的软件服务
|
||||||
|
- 提供必要的技术支持
|
||||||
|
- 及时修复已知的软件缺陷
|
||||||
|
- 保护用户的授权信息安全
|
||||||
|
|
||||||
|
### 3.2 免责声明
|
||||||
|
|
||||||
|
开发者明确声明:
|
||||||
|
|
||||||
|
#### 不承担责任的情况:
|
||||||
|
|
||||||
|
- 📢 用户的违法违规使用行为
|
||||||
|
- 📢 用户与其客户之间的纠纷
|
||||||
|
- 📢 第三方支付平台的问题
|
||||||
|
- 📢 Telegram 平台的服务中断
|
||||||
|
- 📢 用户自身的配置错误
|
||||||
|
- 📢 不可抗力因素导致的服务中断
|
||||||
|
- 📢 用户数据的丢失或损坏
|
||||||
|
- 📢 用户的经济损失
|
||||||
|
|
||||||
|
#### 明确声明:
|
||||||
|
|
||||||
|
1. **不对用户行为负责**
|
||||||
|
- 开发者不审查用户销售的具体内容
|
||||||
|
- 不对用户的商业行为承担责任
|
||||||
|
- 不对用户与其客户的交易负责
|
||||||
|
|
||||||
|
2. **不保证持续服务**
|
||||||
|
- 保留随时停止服务的权利
|
||||||
|
- 保留修改服务内容的权利
|
||||||
|
- 保留调整价格的权利
|
||||||
|
|
||||||
|
3. **不承担连带责任**
|
||||||
|
- 用户的违法行为由用户自行承担
|
||||||
|
- 开发者不承担任何连带责任
|
||||||
|
|
||||||
|
### 3.3 保留权利
|
||||||
|
|
||||||
|
开发者保留以下权利:
|
||||||
|
|
||||||
|
- 🔒 随时终止任何用户的服务
|
||||||
|
- 🔒 撤销已发放的授权码
|
||||||
|
- 🔒 拒绝向任何用户提供服务
|
||||||
|
- 🔒 修改服务条款
|
||||||
|
- 🔒 调整服务价格
|
||||||
|
- 🔒 要求用户提供身份证明
|
||||||
|
- 🔒 向执法部门提供用户信息
|
||||||
|
- 🔒 追究违规用户的法律责任
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 授权码使用规则
|
||||||
|
|
||||||
|
### 4.1 授权范围
|
||||||
|
|
||||||
|
- 授权码仅限购买者本人使用
|
||||||
|
- 一个授权码对应一个部署实例
|
||||||
|
- 不可转让、出租或共享授权码
|
||||||
|
- 不可用于多个服务器
|
||||||
|
|
||||||
|
### 4.2 授权期限
|
||||||
|
|
||||||
|
- 授权码有明确的有效期限
|
||||||
|
- 到期后需要续费才能继续使用
|
||||||
|
- 到期前 7 天会收到提醒
|
||||||
|
- 到期后服务自动停止
|
||||||
|
|
||||||
|
### 4.3 违规处理
|
||||||
|
|
||||||
|
如发现以下违规行为,授权将立即失效:
|
||||||
|
|
||||||
|
- 分享或出售授权码
|
||||||
|
- 破解或修改授权验证系统
|
||||||
|
- 用于非法用途
|
||||||
|
- 违反本服务条款的其他行为
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 隐私保护
|
||||||
|
|
||||||
|
### 5.1 信息收集
|
||||||
|
|
||||||
|
我们可能收集以下信息:
|
||||||
|
|
||||||
|
- 购买者的 Telegram 账号信息
|
||||||
|
- 授权码使用情况
|
||||||
|
- 技术支持相关的日志信息
|
||||||
|
|
||||||
|
### 5.2 信息使用
|
||||||
|
|
||||||
|
收集的信息仅用于:
|
||||||
|
|
||||||
|
- 提供授权服务
|
||||||
|
- 技术支持
|
||||||
|
- 防止滥用
|
||||||
|
- 改进服务质量
|
||||||
|
|
||||||
|
### 5.3 信息保护
|
||||||
|
|
||||||
|
我们承诺:
|
||||||
|
|
||||||
|
- 不出售用户信息
|
||||||
|
- 不与第三方分享用户信息(除非法律要求)
|
||||||
|
- 采取合理措施保护信息安全
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 知识产权
|
||||||
|
|
||||||
|
### 6.1 版权声明
|
||||||
|
|
||||||
|
- 本项目的所有代码、文档、设计归开发者所有
|
||||||
|
- 用户购买的是使用权,不是所有权
|
||||||
|
- 未经授权不得复制、修改、分发本项目
|
||||||
|
|
||||||
|
### 6.2 开源许可
|
||||||
|
|
||||||
|
- 本项目部分代码采用开源许可
|
||||||
|
- 但授权验证系统不属于开源范围
|
||||||
|
- 商业使用需要购买授权
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 服务变更与终止
|
||||||
|
|
||||||
|
### 7.1 服务变更
|
||||||
|
|
||||||
|
开发者有权:
|
||||||
|
|
||||||
|
- 修改服务内容
|
||||||
|
- 调整价格
|
||||||
|
- 更新服务条款
|
||||||
|
|
||||||
|
变更将通过以下方式通知:
|
||||||
|
- Telegram 通知
|
||||||
|
- GitHub 公告
|
||||||
|
- 邮件通知
|
||||||
|
|
||||||
|
### 7.2 服务终止
|
||||||
|
|
||||||
|
以下情况下服务将被终止:
|
||||||
|
|
||||||
|
- 用户主动申请退款(按退款政策)
|
||||||
|
- 用户违反服务条款
|
||||||
|
- 授权码到期未续费
|
||||||
|
- 开发者决定停止服务
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 争议解决
|
||||||
|
|
||||||
|
### 8.1 协商解决
|
||||||
|
|
||||||
|
如发生争议,双方应首先通过友好协商解决。
|
||||||
|
|
||||||
|
### 8.2 法律适用
|
||||||
|
|
||||||
|
本服务条款适用中华人民共和国法律(不包括冲突法规则)。
|
||||||
|
|
||||||
|
### 8.3 管辖法院
|
||||||
|
|
||||||
|
因本服务条款引起的争议,由开发者所在地人民法院管辖。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. 其他条款
|
||||||
|
|
||||||
|
### 9.1 完整协议
|
||||||
|
|
||||||
|
本服务条款构成用户与开发者之间的完整协议。
|
||||||
|
|
||||||
|
### 9.2 可分割性
|
||||||
|
|
||||||
|
如本服务条款的任何条款被认定为无效,其他条款仍然有效。
|
||||||
|
|
||||||
|
### 9.3 条款修改
|
||||||
|
|
||||||
|
开发者保留随时修改本服务条款的权利。修改后的条款将在 GitHub 上公布。继续使用服务即表示接受修改后的条款。
|
||||||
|
|
||||||
|
### 9.4 语言
|
||||||
|
|
||||||
|
本服务条款以中文为准。如有其他语言版本,以中文版本为准。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. 联系方式
|
||||||
|
|
||||||
|
如对本服务条款有任何疑问,请联系:
|
||||||
|
|
||||||
|
- **Telegram**: [@sonhshu](https://t.me/sonhshu)
|
||||||
|
- **GitHub**: [https://github.com/GUGEGEBAIDU/fakabot](https://github.com/GUGEGEBAIDU/fakabot)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. 用户确认
|
||||||
|
|
||||||
|
**使用本项目即表示您已阅读、理解并同意遵守本服务条款的所有内容。**
|
||||||
|
|
||||||
|
**如果您不同意本服务条款的任何内容,请立即停止使用本项目。**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**版权所有 © 2025 Fakabot Team. 保留所有权利。**
|
||||||
|
|
||||||
|
**最后更新**: 2025-01-18
|
||||||
+15
-39
@@ -1,44 +1,20 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import sys
|
# -*- coding: utf-8 -*-
|
||||||
import hashlib
|
"""Compatibility auth shim.
|
||||||
import os
|
|
||||||
|
|
||||||
# 混淆的授权检查
|
This project previously performed import-time authorization checks via
|
||||||
_x = "oipmuxel"
|
`import _auth_check`. The check is intentionally disabled now, but we keep
|
||||||
_y = hashlib.sha256(_x.encode()).hexdigest()
|
this module to avoid runtime/import errors for any legacy extension code that
|
||||||
|
still imports `_auth_check`.
|
||||||
|
"""
|
||||||
|
|
||||||
def check_license():
|
from __future__ import annotations
|
||||||
"""检查授权"""
|
|
||||||
try:
|
|
||||||
if not os.path.exists("license.key"):
|
|
||||||
return False
|
|
||||||
with open("license.key", "r") as f:
|
|
||||||
key = f.read().strip()
|
|
||||||
# 验证授权码格式
|
|
||||||
if "|" not in key or len(key.split("|")) != 3:
|
|
||||||
return False
|
|
||||||
# 验证授权码
|
|
||||||
from offline_license_checker import OfflineLicenseChecker
|
|
||||||
checker = OfflineLicenseChecker()
|
|
||||||
valid, _, _ = checker.verify_license()
|
|
||||||
return valid
|
|
||||||
except:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def show_purchase_info():
|
|
||||||
"""显示购买信息"""
|
|
||||||
print("\n" + "="*60)
|
|
||||||
print("⚠️ 需要授权码才能运行")
|
|
||||||
print("="*60)
|
|
||||||
print("\n💰 购买授权请联系:")
|
|
||||||
print(" Telegram: https://t.me/sonhshu")
|
|
||||||
print("\n💳 订阅价格:")
|
|
||||||
print(" 月付:50 USDT/月")
|
|
||||||
print(" 季付:135 USDT/季(优惠10%)")
|
|
||||||
print(" 年付:510 USDT/年(优惠15%)")
|
|
||||||
print("="*60 + "\n")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# 自动执行检查
|
def check_license() -> bool:
|
||||||
if not check_license():
|
"""Legacy API: always returns True."""
|
||||||
show_purchase_info()
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
# Keep side effects empty on import.
|
||||||
|
AUTH_ENABLED = False
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
@@ -22,10 +19,6 @@ from admin_panel import register_admin_handlers
|
|||||||
from user_flow import register_user_handlers
|
from user_flow import register_user_handlers
|
||||||
from utils import ensure_settings_table, get_setting, set_setting
|
from utils import ensure_settings_table, get_setting, set_setting
|
||||||
|
|
||||||
# ⚠️ 离线授权验证(商业版)
|
|
||||||
from offline_license_checker import init_license_checker
|
|
||||||
init_license_checker()
|
|
||||||
|
|
||||||
# Redis缓存和频率限制
|
# Redis缓存和频率限制
|
||||||
try:
|
try:
|
||||||
from redis_cache import cache
|
from redis_cache import cache
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ services:
|
|||||||
- "127.0.0.1:58002:58002"
|
- "127.0.0.1:58002:58002"
|
||||||
volumes:
|
volumes:
|
||||||
- ./config.json:/app/config.json:ro
|
- ./config.json:/app/config.json:ro
|
||||||
- ./license.key:/app/license.key:ro
|
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
networks:
|
networks:
|
||||||
- fakabot_network
|
- fakabot_network
|
||||||
|
|||||||
+27
-116
@@ -1,135 +1,46 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
"""No-op offline license checker (backward compatibility).
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
Historically this module validated a `license.key` file and could terminate the
|
||||||
# -*- coding: utf-8 -*-
|
process when invalid. To preserve old call sites while removing authorization
|
||||||
"""
|
requirements, this module now exposes the same public API but always passes.
|
||||||
离线授权验证 - 无需服务器
|
|
||||||
直接验证授权码,不需要联网
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import hashlib
|
from __future__ import annotations
|
||||||
import time
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class OfflineLicenseChecker:
|
class OfflineLicenseChecker:
|
||||||
"""离线授权验证器"""
|
"""Backward-compatible checker that always reports valid status."""
|
||||||
|
|
||||||
def __init__(self, license_file="license.key"):
|
license_file: str = "license.key"
|
||||||
self.license_file = license_file
|
|
||||||
# ⚠️ 这个密钥必须和生成器中的密钥一致
|
|
||||||
self.SECRET_KEY = "fakabot_2025_secret_key_abc123xyz789def456"
|
|
||||||
|
|
||||||
def read_license_key(self):
|
def read_license_key(self) -> str:
|
||||||
"""读取授权码"""
|
return ""
|
||||||
if not os.path.exists(self.license_file):
|
|
||||||
return None
|
|
||||||
|
|
||||||
try:
|
def verify_license(self) -> Tuple[bool, str, int]:
|
||||||
with open(self.license_file, 'r') as f:
|
# (is_valid, message, days_left)
|
||||||
return f.read().strip()
|
return True, "license check disabled", 36500
|
||||||
except Exception as e:
|
|
||||||
print(f"读取授权文件失败: {e}")
|
|
||||||
return None
|
|
||||||
|
|
||||||
def verify_license(self):
|
def check_and_exit(self) -> bool:
|
||||||
"""验证授权"""
|
return True
|
||||||
license_key = self.read_license_key()
|
|
||||||
|
|
||||||
if not license_key:
|
|
||||||
return False, "未找到授权文件 license.key", 0
|
|
||||||
|
|
||||||
try:
|
|
||||||
# 解析授权码
|
|
||||||
parts = license_key.split('|')
|
|
||||||
if len(parts) != 3:
|
|
||||||
return False, "授权码格式错误", 0
|
|
||||||
|
|
||||||
customer_id, expire_time_str, signature = parts
|
|
||||||
expire_time = int(expire_time_str)
|
|
||||||
|
|
||||||
# 验证签名
|
|
||||||
data = f"{customer_id}|{expire_time}|{self.SECRET_KEY}"
|
|
||||||
expected_signature = hashlib.sha256(data.encode()).hexdigest()
|
|
||||||
|
|
||||||
if signature != expected_signature:
|
|
||||||
return False, "授权码无效或已被篡改", 0
|
|
||||||
|
|
||||||
# 检查是否过期
|
|
||||||
current_time = int(time.time())
|
|
||||||
if current_time > expire_time:
|
|
||||||
expire_date = datetime.fromtimestamp(expire_time).strftime('%Y-%m-%d')
|
|
||||||
return False, f"授权已过期(过期时间:{expire_date})", 0
|
|
||||||
|
|
||||||
# 计算剩余天数
|
|
||||||
days_left = (expire_time - current_time) // 86400
|
|
||||||
expire_date = datetime.fromtimestamp(expire_time).strftime('%Y-%m-%d')
|
|
||||||
|
|
||||||
print(f"\n{'='*60}")
|
|
||||||
print(f"✅ 授权验证通过")
|
|
||||||
print(f"📝 客户ID: {customer_id}")
|
|
||||||
print(f"📅 到期时间: {expire_date}")
|
|
||||||
print(f"⏰ 剩余天数: {days_left} 天")
|
|
||||||
|
|
||||||
# 快过期提醒
|
|
||||||
if days_left <= 7:
|
|
||||||
print(f"\n⚠️ 授权即将过期!请及时续费")
|
|
||||||
print(f"💰 续费联系:")
|
|
||||||
print(f" Telegram: https://t.me/sonhshu")
|
|
||||||
|
|
||||||
print(f"{'='*60}\n")
|
|
||||||
|
|
||||||
return True, "", days_left
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
return False, f"授权验证失败: {str(e)}", 0
|
|
||||||
|
|
||||||
def check_and_exit(self):
|
|
||||||
"""检查授权,无效则退出"""
|
|
||||||
is_valid, error_msg, days_left = self.verify_license()
|
|
||||||
|
|
||||||
if not is_valid:
|
|
||||||
print("\n" + "="*60)
|
|
||||||
print(error_msg)
|
|
||||||
print("="*60)
|
|
||||||
print("\n💰 购买或续费订阅请联系:")
|
|
||||||
print(" Telegram: https://t.me/sonhshu")
|
|
||||||
print("\n💳 订阅价格:")
|
|
||||||
print(" 月付:50 USDT/月")
|
|
||||||
print(" 季付:135 USDT/季(优惠10%)")
|
|
||||||
print(" 年付:510 USDT/年(优惠15%)")
|
|
||||||
print("\n✨ 订阅包含:")
|
|
||||||
print(" • 完整功能")
|
|
||||||
print(" • 技术支持")
|
|
||||||
print(" • 定期更新")
|
|
||||||
print("="*60 + "\n")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
# 全局实例
|
_license_checker: OfflineLicenseChecker | None = None
|
||||||
_license_checker = None
|
|
||||||
|
|
||||||
def init_license_checker():
|
|
||||||
"""初始化授权检查器"""
|
def init_license_checker() -> OfflineLicenseChecker:
|
||||||
global _license_checker
|
global _license_checker
|
||||||
_license_checker = OfflineLicenseChecker()
|
_license_checker = OfflineLicenseChecker()
|
||||||
_license_checker.check_and_exit()
|
return _license_checker
|
||||||
|
|
||||||
def get_days_left():
|
|
||||||
"""获取剩余天数"""
|
def get_license_days_left(default: int = 36500) -> int:
|
||||||
if _license_checker:
|
if _license_checker is None:
|
||||||
|
return default
|
||||||
_, _, days_left = _license_checker.verify_license()
|
_, _, days_left = _license_checker.verify_license()
|
||||||
return days_left
|
return days_left
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
# 测试代码
|
|
||||||
if __name__ == "__main__":
|
|
||||||
print("测试离线授权验证...")
|
|
||||||
init_license_checker()
|
|
||||||
print("✅ 授权验证通过,程序可以正常运行")
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
支付系统核心模块 - 重构版
|
支付系统核心模块 - 重构版
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
柠檬支付官方标准对接模块
|
柠檬支付官方标准对接模块
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
支付页面截图工具
|
支付页面截图工具
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
import secrets
|
import secrets
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# 授权检查 - 请勿删除此部分,否则程序无法运行
|
|
||||||
import _auth_check
|
|
||||||
|
|
||||||
# Consolidated utilities module: merged from utils/*.py
|
# Consolidated utilities module: merged from utils/*.py
|
||||||
# Sections:
|
# Sections:
|
||||||
# - constants: STATUS_ZH, MSG
|
# - constants: STATUS_ZH, MSG
|
||||||
|
|||||||
Reference in New Issue
Block a user