178 lines
6 KiB
Markdown
178 lines
6 KiB
Markdown
# GameServers.World - Billing Module
|
|
|
|
## Overview
|
|
The billing module is a complete standalone website for selling game servers. It can be deployed on the same machine as the GSP panel or on a completely separate external web host.
|
|
|
|
## Documentation System
|
|
|
|
### Visual TODO System ✅
|
|
As of December 19, 2024, all game documentation includes completion tracking:
|
|
|
|
- **Complete Documentation:** Displays with normal name (e.g., "Minecraft Server")
|
|
- **Incomplete Documentation:** Displays with "TODO: " prefix (e.g., "TODO: Arma 3")
|
|
|
|
### Current Status
|
|
- **Complete:** 1 game (Minecraft - comprehensive template)
|
|
- **Incomplete:** 146 games (marked with TODO prefix)
|
|
|
|
### Documentation Template Standard
|
|
All complete documentation should match the Minecraft template:
|
|
- Comprehensive ports table (ALL ports with purposes)
|
|
- Firewall configurations (UFW, FirewallD, Windows, iptables)
|
|
- Startup parameters with detailed explanations
|
|
- Troubleshooting sections with specific solutions
|
|
- Performance optimization tips
|
|
- Security best practices
|
|
- Resource links with citations
|
|
|
|
### Viewing Documentation
|
|
- Browse to `docs.php` to see all game documentation
|
|
- Games with "TODO: " prefix need comprehensive research and writing
|
|
- Click any game to view its documentation page
|
|
|
|
### Marking Documentation Complete
|
|
When game documentation is finished:
|
|
1. Edit `docs/{game}/metadata.json`
|
|
2. Change `"complete": false` to `"complete": true`
|
|
3. The TODO prefix will automatically disappear
|
|
|
|
## Recent Updates
|
|
|
|
### December 19, 2024 - Visual TODO System
|
|
- ✅ Implemented completion tracking for all 148 game folders
|
|
- ✅ Created PowerShell automation script (`update_metadata_complete.ps1`)
|
|
- ✅ Updated docs.php with automatic TODO prefix display
|
|
- ✅ Minecraft documentation completed as template example
|
|
|
|
### November 10, 2025 - Critical Fixes
|
|
- ✅ Fixed PayPal payment capture session issue
|
|
- ✅ Removed cart debug logging code
|
|
- ✅ Fixed cart page header/footer consistency
|
|
- ✅ Implemented AJAX invoice removal with Font Awesome icons
|
|
|
|
## Key Files
|
|
|
|
### Documentation System
|
|
- `docs.php` - Documentation browser with TODO system
|
|
- `docs/*/index.php` - Individual game documentation pages
|
|
- `docs/*/metadata.json` - Game metadata with completion status
|
|
- `update_metadata_complete.ps1` - Batch metadata update script
|
|
|
|
### Reference Documents
|
|
- `PHASE1_COMPLETE_SUMMARY.md` - Phase 1 implementation summary
|
|
- `GAME_DOCS_TODO_REFERENCE.md` - Complete reference for documentation system
|
|
- `RECENT_FIXES_SUMMARY.md` - All recent fixes and enhancements
|
|
|
|
### Payment Integration
|
|
- `api/capture_order.php` - PayPal payment capture (fixed session handling)
|
|
- `payment_success.php` - Payment success redirect
|
|
- `payment_cancel.php` - Payment cancellation handler
|
|
|
|
### Shopping Cart
|
|
- `cart.php` - Shopping cart UI with PayPal integration (cleaned up)
|
|
- `add_to_cart.php` - Add items to cart
|
|
- `remove_from_cart.php` - AJAX removal endpoint
|
|
|
|
## Development Guidelines
|
|
|
|
### Adding New Game Documentation
|
|
1. Create folder: `docs/{game-slug}/`
|
|
2. Create `metadata.json`:
|
|
```json
|
|
{
|
|
"name": "Game Name",
|
|
"description": "Brief description",
|
|
"category": "game",
|
|
"order": 100,
|
|
"complete": false
|
|
}
|
|
```
|
|
3. Create `index.php` following Minecraft template
|
|
4. Add optional `icon.png` or `icon.jpg`
|
|
5. When complete, set `"complete": true` in metadata
|
|
|
|
### Research Sources for Game Documentation
|
|
- Official game wikis and documentation
|
|
- LGSM (LinuxGSM) scripts and configuration files
|
|
- Steam Community Guides (highly-rated)
|
|
- Reddit communities (r/gameservers, game-specific)
|
|
- GitHub repositories with server configurations
|
|
- Official game forums
|
|
- User-contributed solutions and fixes
|
|
|
|
### Documentation Quality Standards
|
|
- **Comprehensive Ports:** List ALL ports with purposes (TCP/UDP)
|
|
- **Startup Parameters:** Full parameter explanations with examples
|
|
- **Troubleshooting:** Specific common issues with tested solutions
|
|
- **Firewall Configs:** Multiple platform examples (Linux + Windows)
|
|
- **Citations:** Link to all sources used in research
|
|
- **Testing:** Verify all commands and configurations are accurate
|
|
|
|
## Next Priorities
|
|
|
|
### Phase 2: ARMA Family + DayZ (HIGH PRIORITY)
|
|
1. Arma 3
|
|
2. Arma 2: Operation Arrowhead
|
|
3. Arma 2: Combined Operations
|
|
4. DayZ Standalone
|
|
5. DayZ Mod
|
|
|
|
### Phase 3: Popular Multiplayer Games
|
|
- Counter-Strike family (1.6, Source, CS2, CS:GO)
|
|
- Survival/Building (Rust, Terraria, Valheim, ARK)
|
|
- Co-op Shooters (L4D series, Killing Floor series, TF2)
|
|
- Tactical Shooters (Insurgency series, Squad)
|
|
|
|
### Phase 4: Remaining Games
|
|
- All other 50+ game folders in alphabetical order
|
|
|
|
## Testing Checklist
|
|
|
|
### PayPal Integration
|
|
- [ ] User can add servers to cart
|
|
- [ ] PayPal checkout button works
|
|
- [ ] Payment completes successfully
|
|
- [ ] Success page displays correctly
|
|
- [ ] No `NO_USER_SESSION` errors in logs
|
|
|
|
### Documentation System
|
|
- [ ] docs.php displays all games correctly
|
|
- [ ] TODO prefix shows for incomplete docs
|
|
- [ ] Complete docs show without TODO prefix
|
|
- [ ] Individual game pages load correctly
|
|
- [ ] Navigation links work within documentation
|
|
|
|
### Cart Functionality
|
|
- [ ] Cart displays all items correctly
|
|
- [ ] Remove button deletes items (AJAX)
|
|
- [ ] Header and footer display consistently
|
|
- [ ] Fonts match other billing pages
|
|
|
|
## Technical Notes
|
|
|
|
### Session Management
|
|
- **CRITICAL:** Always use `session_name("opengamepanel_web")` before `session_start()`
|
|
- Sessions are separate from panel sessions
|
|
- User authentication stored in `$_SESSION['website_user_id']`
|
|
|
|
### Database Connection
|
|
- Uses mysqli with credentials from `includes/config.inc.php`
|
|
- All database operations use native mysqli functions
|
|
- Never use panel-specific functions
|
|
|
|
### Standalone Design
|
|
- Module must work on external hosting
|
|
- No dependencies on panel files
|
|
- All paths use `__DIR__` relative references
|
|
- MySQL connection direct (not through panel)
|
|
|
|
## Support & Resources
|
|
- Main project: GameServerPanel/GSP
|
|
- Branch: Panel-unstable
|
|
- Documentation: Browse `docs.php` for game-specific guides
|
|
- Issues: Check logs in `modules/billing/logs/`
|
|
|
|
---
|
|
**Last Updated:** December 19, 2024
|
|
**Version:** 2.0 (with Visual TODO System)
|
|
|