65 lines
2.6 KiB
PHP
65 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* Flash Call OTP System — Configuration
|
|
* Domain: otp.intaleqapp.com
|
|
*/
|
|
|
|
// Load Dotenv if composer dependencies are installed
|
|
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
// Check inside current dir, parent dir, grandparent dir, or user root dir
|
|
$envPaths = [__DIR__, dirname(__DIR__), dirname(dirname(__DIR__)), dirname(dirname(dirname(__DIR__)))];
|
|
foreach ($envPaths as $path) {
|
|
if (file_exists($path . '/.env')) {
|
|
// Use createMutable to override any existing stuck environment variables
|
|
$dotenv = Dotenv\Dotenv::createMutable($path);
|
|
$dotenv->safeLoad();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Database
|
|
define('DB_HOST', $_ENV['DB_HOST'] ?? $_SERVER['DB_HOST'] ?? getenv('DB_HOST'));
|
|
define('DB_NAME', $_ENV['DB_NAME'] ?? $_SERVER['DB_NAME'] ?? getenv('DB_NAME'));
|
|
define('DB_USER', $_ENV['DB_USER'] ?? $_SERVER['DB_USER'] ?? getenv('DB_USER'));
|
|
define('DB_PASS', $_ENV['DB_PASS'] ?? $_SERVER['DB_PASS'] ?? getenv('DB_PASS'));
|
|
|
|
// Redis
|
|
define('REDIS_HOST', $_ENV['REDIS_HOST'] ?? $_SERVER['REDIS_HOST'] ?? getenv('REDIS_HOST'));
|
|
define('REDIS_PORT', $_ENV['REDIS_PORT'] ?? $_SERVER['REDIS_PORT'] ?? getenv('REDIS_PORT'));
|
|
define('REDIS_PASSWORD', $_ENV['REDIS_PASSWORD'] ?? $_SERVER['REDIS_PASSWORD'] ?? getenv('REDIS_PASSWORD') ?: null);
|
|
define('REDIS_DB', $_ENV['REDIS_DB'] ?? $_SERVER['REDIS_DB'] ?? getenv('REDIS_DB'));
|
|
|
|
// Application Keys
|
|
define('APP_KEY', $_ENV['APP_KEY'] ?? $_SERVER['APP_KEY'] ?? getenv('APP_KEY'));
|
|
define('DEVICE_KEY', $_ENV['DEVICE_KEY'] ?? $_SERVER['DEVICE_KEY'] ?? getenv('DEVICE_KEY'));
|
|
|
|
// SMS Sender ID (for iOS SMS delivery)
|
|
define('SMS_SENDER_ID', 'انطلق');
|
|
|
|
// OTP Settings
|
|
define('OTP_EXPIRE_SECONDS', 120);
|
|
define('MAX_OTP_ATTEMPTS', 5);
|
|
|
|
// Rate Limiting
|
|
define('RATE_LIMIT_WINDOW', 600); // 10 minutes in seconds
|
|
define('RATE_LIMIT_MAX', 3); // Max OTP requests per phone per window
|
|
|
|
// Caller ID Configuration
|
|
// Format: +96279XX{OTP} — XX = random 2 digits
|
|
define('CALLER_ID_PREFIX', '+9639');
|
|
|
|
// Logging
|
|
define('LOG_REQUESTS', true);
|
|
define('LOG_FILE', __DIR__ . '/logs/api.log');
|
|
|
|
// WhatsApp Gateway Configuration
|
|
define('WHATSAPP_GATEWAY_URL', $_ENV['WHATSAPP_GATEWAY_URL'] ?? $_SERVER['WHATSAPP_GATEWAY_URL'] ?? getenv('WHATSAPP_GATEWAY_URL'));
|
|
define('WHATSAPP_WEBHOOK_SECRET', $_ENV['WHATSAPP_WEBHOOK_SECRET'] ?? $_SERVER['WHATSAPP_WEBHOOK_SECRET'] ?? getenv('WHATSAPP_WEBHOOK_SECRET'));
|
|
define('WHATSAPP_SESSION_KEY', $_ENV['WHATSAPP_SESSION_KEY'] ?? $_SERVER['WHATSAPP_SESSION_KEY'] ?? getenv('WHATSAPP_SESSION_KEY'));
|
|
|
|
// Timezone
|
|
date_default_timezone_set('Asia/Amman');
|