Panel/docs/modules/billing.md
2026-06-17 14:53:00 -05:00

82 lines
2.3 KiB
Markdown

# Billing
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Purpose
Commercial billing, provisioning, invoices, orders, transactions, coupons, and payment gateway integration.
## Current Status
- Functional
- Partial / complex
## Dependencies
- Payment gateways
- provisioning flow
- server lifecycle and expiration logic
- docs under `Panel/modules/billing/docs/`
## Database Tables
- `billing_services`
- `billing_orders`
- `billing_invoices`
- `billing_transactions`
- `billing_coupons`
- `billing_config`
- `billing_paypal_webhook_events`
- `billing_paypal_errors`
## Agent Interaction
- indirect through provisioning and server lifecycle
## User Workflow
- shop/service purchase
- invoice/payment flow
- renewals
- account/service status
## Website Ordering Boundary
The active Gameservers.World website no longer links customers to `billing/order.php`. The public catalog uses `Panel/modules/website/order.php?service_id=...` as the order entry point. That page validates the enabled service server-side and allows anonymous visitors to configure slots/location and add the package to the website session cart.
Payment approval and final provisioning remain server-side responsibilities. The browser must not call private provisioning methods directly, and prices must be read from server-side catalog data rather than query parameters.
In this repository checkout the historical `Panel/modules/billing` runtime is not present, although billing tables and integration references remain. The website cart therefore stops at validated order intent and a friendly checkout-unavailable message until the active checkout/payment runtime is connected.
## Admin Workflow
- configure payment gateways
- manage coupons and pricing
- inspect invoices/transactions
- manage provisioning behavior
## Security Concerns
- payment keys and webhook secrets
- user identity and billing data
- service suspension/expiration behavior
## Known Issues
- large and complex module surface
- requires strong testing around provisioning lifecycle
## Missing Functionality
- cleaner linkage from billing events to server state
- clearer expiration/suspension docs and UX
## Suggested Future Improvements
- simplify provisioning audit
- add clearer service lifecycle feedback
- link billing more directly to support and server monitor
## Recommendation
- Keep / Rewrite