'localhost',
'name' => 'kh_e6233585_Agentverify',
'user' => 'kh_e6233585_Lildon_Team',
'pass' => 'ASNC19Eco025'
];
try {
$pdo = new PDO("mysql:host={$db_config['host']};dbname={$db_config['name']}", $db_config['user'], $db_config['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Initialize Table
$pdo->exec("CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
fullname VARCHAR(100),
email VARCHAR(100) UNIQUE,
password VARCHAR(255),
account_number VARCHAR(20),
bank_name VARCHAR(50),
balance DECIMAL(10,2) DEFAULT 0.00
)");
} catch(PDOException $e) { $error = "Connection failed: " . $e->getMessage(); }
// --- 2. PHP BACKEND LOGIC ---
$action = $_GET['action'] ?? 'home';
// LOGOUT
if($action == 'logout') { session_destroy(); header("Location: index.php"); exit; }
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// REGISTER & KATPAY INTEGRATION
if ($action === 'register') {
$name = $_POST['fullname'];
$email = $_POST['email'];
$pass = password_hash($_POST['password'], PASSWORD_DEFAULT);
$kat_secret = "eyJpdiI6IjVaUmVQM1R3Ylo4TDlzeFVyL054QlE9PSIsInZhbHVlIjoiSDZRQU1HVHZrQjR4Rlp5UExvSDZhRFhlWi8rT2ZPL095eXZXcXFhUWdiMnhLQjY1bVI3VGR2SlAxK3B5MXU0TDc3MGNmSUNsM2kxNEFhMWs5SStOcERmak9CYUN0SFVjZHBJbGpncjVCa1c2MDROWGRrOHBXRFZXSEJYei9STHUiLCJtYWMiOiJkZTViMDNmMTEzNTMwMjkxYmZjMDI0ODcxNGY5YWQzZjA1MTY1YzZkYzY3NmM2NWQyMWNiNTljMzlmODhlNzM5IiwidGFnIjoiIn0=";
// KatPay API for Virtual PalmPay Account
$ch = curl_init("https://api.katpay.co/v1/virtual-account/create");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer $kat_secret", "Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"account_name" => $name,
"email" => $email,
"bank_code" => "999991" // Palmpay
]));
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
$acc_num = $res['data']['account_number'] ?? '0000000000';
$stmt = $pdo->prepare("INSERT INTO users (fullname, email, password, account_number, bank_name) VALUES (?, ?, ?, ?, 'PalmPay')");
try {
$stmt->execute([$name, $email, $pass, $acc_num]);
$msg = "Registration successful! You can now login.";
} catch(Exception $e) { $error = "Registration failed. Email might exist."; }
}
// LOGIN
if ($action === 'login') {
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$_POST['email']]);
$user = $stmt->fetch();
if ($user && password_verify($_POST['password'], $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_name'] = $user['fullname'];
header("Location: index.php?view=dashboard");
exit;
} else { $error = "Invalid credentials."; }
}
// DATAVERIFY NIN API CALL
if ($action === 'verify') {
$method = $_POST['method'];
$slip = $_POST['slip_type'];
$val = $_POST['id_value'];
$apiKey = "dataverify536b7003e957cec65a05ade87f92eb91";
// Logic to select correct endpoint
$baseUrl = "https://dataverify.com.ng/developers/nin_slips/";
if ($method === 'phone') {
$url = $baseUrl . "nin_{$slip}_phone";
} else {
if($slip == 'vnin') $url = $baseUrl . "vnin_slip";
elseif($slip == 'basic') $url = $baseUrl . "nin_basic_slip";
else $url = $baseUrl . "nin_{$slip}";
}
$payload = json_encode(['api_key' => $apiKey, 'nin' => $val]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json']
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($response['status'] === 'success' && !empty($response['pdf_base64'])) {
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="nin_slip_'.$val.'.pdf"');
echo base64_decode($response['pdf_base64']);
exit;
} else { $error = $response['message'] ?? "API Error. Check API balance."; }
}
}
// Fetch Logged In User
if(isset($_SESSION['user_id'])) {
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$u = $stmt->fetch();
}
?>
AgentVerify | Professional Verification Portal
= $error ?>
= $msg ?>
Premium Access
Secure, instant, and professional NIN verification for agents. Access Basic, Standard, and Premium slips with automatic PalmPay wallet funding.
Main Balance
Funding: PalmPay (KatPay)
= $u['account_number'] ?>
Transfer to fund your wallet
Generate Verification Slip