- config.inc.php: new sandbox/live credential structure with paypal_mode, separate
sandbox/live client_id, client_secret, webhook_id, and webhook_path
- config.example.php: updated to match new structure
- config_loader.php: adds defaults and backward compat mapping from old
$paypal_sandbox/$paypal_client_id variables; adds gsp_paypal_* helper functions
- PayPalGateway.php: fromConfig() uses gsp_paypal_* helpers with fallback
- cart.php: uses gsp_paypal_get_client_id()/gsp_paypal_is_sandbox() helpers
- webhook.php: updated to use gsp_paypal_* helpers for credentials/API base
- paypal/webhook.php: new full-featured webhook receiver with signature
verification, idempotency log, event processing, provisioning trigger
- admin_config.php: expanded to separate sandbox/live fields, computed webhook URL,
diagnostics panel showing credential status and recent webhook events
- module.php: bumped to v3.3/db_version 3, adds billing_paypal_webhook_events table
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/f974e469-8562-41df-ba37-bc340f5a154c
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
- admin_config.php: guard session_start() — was firing Notice because
admin_auth.php → session_bridge.php already started the session
- includes/menu.php: check mysqli_thread_id() before reusing $db so a
closed handle does not cause 'mysqli object is already closed' fatal
- admin_invoices.php / admin_payments.php: set $db = null after
mysqli_close() so menu.php's reuse-check correctly falls through to
opening a fresh connection
- adminserverlist.php: use col_exists() to detect missing 'enabled'
column in gsp_remote_servers; fall back to constant 1 and display a
schema-notice banner; guard UPDATE accordingly; also add missing
price_daily / price_year columns to the services SELECT; remove
duplicate 'Update Enabled Servers' button
- add_remote_server_enabled_column.sql: idempotent migration to add the
'enabled' INT column to gsp_remote_servers on older installs
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/988997ed-7568-48bf-96ef-889fb5d91fec
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>