Add SPOTA core PHP application

Add the main admin, dosen, mahasiswa, API, and service code needed to run the core legacy application with configurable upload storage.
This commit is contained in:
Power BI Dev
2026-05-02 10:08:52 +07:00
parent 874dbbe8e8
commit efdb11db3f
221 changed files with 43273 additions and 0 deletions

78
wa-req-forwarder.php Normal file
View File

@@ -0,0 +1,78 @@
<?php
header("Content-Type: application/json");
// ================= CONFIG =================
$apiUrl = "http://203.24.50.140:43400/send-message";
$apiKey = "inf0rm4t1k4-2026-W4-G4T3W4Y";
$sender = "6285171655161"; // nomor sender terdaftar
// ==========================================
// Ambil input (bisa dari POST atau JSON body)
$receiver = isset($_POST['receiver']) ? $_POST['receiver'] : null;
$message = isset($_POST['message']) ? $_POST['message'] : null;
// Validasi nomor
if (
empty($receiver) ||
strlen($receiver) < 10 ||
strlen($receiver) > 13
) {
echo json_encode([
"success" => false,
"message" => "Invalid phone number"
]);
exit;
}
// Konversi 08xxxx → 628xxxx
if ($receiver[0] == '0') {
$receiver = '62' . substr($receiver, 1);
}
// Data yang dikirim ke WA Gateway
$postData = http_build_query([
"sender" => $sender,
"number" => $receiver,
"message" => $message
]);
// Setup HTTP Context
$options = [
"http" => [
"method" => "POST",
"header" =>
"Content-Type: application/x-www-form-urlencoded\r\n" .
"x-api-key: {$apiKey}\r\n",
"content" => $postData,
"timeout" => 30
]
];
$context = stream_context_create($options);
// Eksekusi request
$result = @file_get_contents($apiUrl, false, $context);
if ($result === FALSE) {
echo json_encode([
"success" => false,
"message" => "Gagal menghubungi server WA Gateway"
]);
exit;
}
$response = json_decode($result, true);
// Normalisasi response seperti Helper Laravel
if (isset($response['status']) && $response['status'] == true) {
echo json_encode([
"success" => true,
"message" => "Pesan Berhasil Dikirim"
]);
} else {
echo json_encode([
"success" => false,
"message" => "Nomor Tidak Dikenali"
]);
}