Pisah server penyimpanan dan update payment gateway
This commit is contained in:
+58
-24
@@ -1,10 +1,11 @@
|
||||
const { exec } = require('child_process');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// Jalur ke executable PHP
|
||||
// === Konfigurasi dasar ===
|
||||
const phpExecutablePath = '/www/server/php/74/bin/php';
|
||||
|
||||
// Daftar jalur ke file PHP
|
||||
// Daftar file PHP utama
|
||||
const phpScriptPaths = [
|
||||
path.join(__dirname, 'load_pesan.php'),
|
||||
path.join(__dirname, 'load_tagihan_flip.php'),
|
||||
@@ -12,47 +13,80 @@ const phpScriptPaths = [
|
||||
path.join(__dirname, 'load_tagihan_paydisini.php'),
|
||||
];
|
||||
|
||||
|
||||
// --- File tambahan setiap 1 detik ---
|
||||
// File tambahan (jalan tiap 1 detik)
|
||||
const loadWAOfficialPath = path.join(__dirname, 'load_pesan_official.php');
|
||||
|
||||
// Fungsi untuk menjalankan 1 file PHP (Promise)
|
||||
// === Pengaturan Log ===
|
||||
const LOG_DIR = path.join(__dirname, 'logs');
|
||||
const LOG_FILE = path.join(LOG_DIR, 'service.log');
|
||||
const MAX_LOG_SIZE = 5 * 1024 * 1024; // 5MB per file
|
||||
|
||||
// Pastikan folder logs ada
|
||||
if (!fs.existsSync(LOG_DIR)) fs.mkdirSync(LOG_DIR);
|
||||
|
||||
// Fungsi menulis log efisien (rotasi otomatis)
|
||||
function writeLog(message, isError = false) {
|
||||
const timestamp = new Date().toISOString();
|
||||
const formatted = `[${timestamp}] ${isError ? '[ERROR]' : '[INFO] '} ${message}\n`;
|
||||
|
||||
try {
|
||||
// Cek ukuran file log
|
||||
if (fs.existsSync(LOG_FILE) && fs.statSync(LOG_FILE).size > MAX_LOG_SIZE) {
|
||||
const old = LOG_FILE.replace('.log', `_${Date.now()}.log`);
|
||||
fs.renameSync(LOG_FILE, old);
|
||||
}
|
||||
fs.appendFileSync(LOG_FILE, formatted, { encoding: 'utf8' });
|
||||
} catch (e) {
|
||||
console.error('Log write failed:', e.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Fungsi menjalankan file PHP
|
||||
function runPhpScript(phpScriptPath) {
|
||||
return new Promise((resolve) => {
|
||||
console.log(`Running command: ${phpExecutablePath} ${phpScriptPath}`);
|
||||
exec(`${phpExecutablePath} ${phpScriptPath}`, (error, stdout, stderr) => {
|
||||
const cmd = `${phpExecutablePath} ${phpScriptPath}`;
|
||||
writeLog(`Running command: ${cmd}`);
|
||||
|
||||
exec(cmd, { maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(`Error executing PHP script ${phpScriptPath}: ${error.message}`);
|
||||
} else if (stderr) {
|
||||
console.error(`PHP script ${phpScriptPath} stderr: ${stderr}`);
|
||||
} else {
|
||||
console.log(`PHP script ${phpScriptPath} output: ${stdout}`);
|
||||
writeLog(`Error executing PHP script ${phpScriptPath}: ${error.message}`, true);
|
||||
} else if (stderr && stderr.trim()) {
|
||||
writeLog(`PHP script ${phpScriptPath} stderr: ${stderr.trim()}`, true);
|
||||
} else if (stdout && stdout.trim()) {
|
||||
// Batasi panjang log agar efisien
|
||||
const output = stdout.trim().substring(0, 300);
|
||||
writeLog(`PHP script ${phpScriptPath} output: ${output}${stdout.length > 300 ? '...' : ''}`);
|
||||
}
|
||||
resolve(); // tetap resolve biar lanjut meskipun error
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Fungsi utama
|
||||
// Fungsi utama untuk load semua script (5–15 detik)
|
||||
async function runPhpScripts() {
|
||||
// Jalankan semua script secara paralel
|
||||
await Promise.all(phpScriptPaths.map(runPhpScript));
|
||||
|
||||
// Random delay 5–15 detik
|
||||
const nextDelay = Math.floor(Math.random() * (10000 - 5000 + 1)) + 5000;
|
||||
console.log(`Next run in ${nextDelay / 1000} seconds\n`);
|
||||
|
||||
// Jalankan lagi setelah delay
|
||||
writeLog(`Next run in ${nextDelay / 1000} seconds`);
|
||||
setTimeout(runPhpScripts, nextDelay);
|
||||
}
|
||||
|
||||
// Fungsi loop cepat (1 detik)
|
||||
function runLoadWAOfficial() {
|
||||
runPhpScript(loadWAOfficialPath).then(() => {
|
||||
setTimeout(runLoadWAOfficial, 1000);
|
||||
});
|
||||
// Fungsi loop khusus loadWAOfficial (tiap 1 detik)
|
||||
async function runLoadWAOfficial() {
|
||||
try {
|
||||
await runPhpScript(loadWAOfficialPath);
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
runLoadWAOfficial();
|
||||
} catch (error) {
|
||||
writeLog(`Error saat menjalankan loadWAOfficial: ${error.message}`, true);
|
||||
setTimeout(runLoadWAOfficial, 5000);
|
||||
}
|
||||
}
|
||||
|
||||
// Tangani error global agar tidak crash
|
||||
process.on('unhandledRejection', err => writeLog(`Unhandled Rejection: ${err.message}`, true));
|
||||
process.on('uncaughtException', err => writeLog(`Uncaught Exception: ${err.message}`, true));
|
||||
|
||||
// Jalankan pertama kali
|
||||
runPhpScripts();
|
||||
runLoadWAOfficial();
|
||||
|
||||
@@ -71,12 +71,16 @@ try {
|
||||
$sekarang = date('Y-m-d');
|
||||
|
||||
if ($sekarang === $cektanggal) {
|
||||
|
||||
$keteranganName = ucwords(strtolower(preg_replace('/[^a-zA-Z\s]/', '', $data['nama'])));
|
||||
$keteranganFlip = str_replace('Layanan Internet ', '', $data['keterangan']) . " (an. " . $keteranganName . ")";
|
||||
|
||||
// Buat link payment gateway
|
||||
require '../payment/flip/Flip/Transaction.php';
|
||||
$flip = new FlipPaymentGateway($apiKey, $apiUrl);
|
||||
|
||||
$response = $flip->createBill(
|
||||
sanitizeString($data['keterangan']),
|
||||
sanitizeString($keteranganFlip),
|
||||
sanitizeString($data['verifikasi_tagihan']),
|
||||
$data['email'],
|
||||
sanitizeString($data['nama']),
|
||||
@@ -100,8 +104,9 @@ try {
|
||||
':transaction_status' => $transaction_status,
|
||||
':idtag' => $data['id']
|
||||
]);
|
||||
|
||||
|
||||
echo "[SUCCESS] {$data['nama']} ({$data['id']}) link dibuat.\n";
|
||||
echo "[SUCCESS] {$data['nama']} ({$data['id']}) Server Id :{$data['id_data_server']} , link dibuat.\n";
|
||||
$linkCreated = true; // Set penanda ada link dibuat
|
||||
} else {
|
||||
error_log("[ERROR] Flip API gagal untuk tagihan ID {$data['id']}");
|
||||
|
||||
@@ -1,117 +1,121 @@
|
||||
[16:00:01] [OK] 103.26.176.81
|
||||
[16:00:01] [OK] 103.188.169.123
|
||||
[16:00:01] [OK] 103.26.176.85
|
||||
[16:00:01] [OK] 103.188.169.121
|
||||
[16:00:01] [OK] 103.26.176.83
|
||||
[16:00:01] [OK] 103.155.198.185
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] 103.188.169.127
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] 157.20.128.231
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] tunnel.manjapro.net
|
||||
[16:00:02] [OK] 103.155.196.145
|
||||
[16:00:02] [OK] 103.26.176.93
|
||||
[16:00:03] [OK] 103.242.104.69
|
||||
[16:00:03] [OK] tunnel.manjapro.net
|
||||
[16:00:03] [OK] 103.94.10.112
|
||||
[16:00:03] [OK] tunnel.manjapro.net
|
||||
[16:00:03] [OK] 103.31.233.237
|
||||
[16:00:03] [OK] tunnel.manjapro.net
|
||||
[16:00:03] [OK] 103.18.79.171
|
||||
[16:00:04] [OK] 103.26.176.87
|
||||
[16:00:04] [OK] 103.155.199.191
|
||||
[16:00:04] [OK] tunnel.manjapro.net
|
||||
[16:00:04] [OK] tunnel.manjapro.net
|
||||
[16:00:04] [OK] tunnel.manjapro.net
|
||||
[16:00:05] [OK] 103.236.190.109
|
||||
[16:00:05] [OK] 103.242.106.56
|
||||
[16:00:05] [FAIL] 103.67.80.126
|
||||
[16:00:06] [FAIL] tunnel.bilspro.com
|
||||
[16:00:06] [FAIL] tunnel.bilspro.com
|
||||
[16:00:07] [FAIL] 103.94.10.240
|
||||
[16:00:07] [FAIL] 103.94.10.240
|
||||
[16:00:08] [FAIL] 103.94.10.240
|
||||
[16:00:08] [OK] tunnel.manjapro.net
|
||||
[16:00:08] [FAIL] tunnel.bilspro.com
|
||||
[16:00:09] [FAIL] infinnet.cloud
|
||||
[16:00:09] [OK] tunnel.manjapro.net
|
||||
[16:00:09] [OK] tunnel.manjapro.net
|
||||
[16:00:09] [FAIL] 103.155.198.109
|
||||
[16:00:09] [OK] tunnel.manjapro.net
|
||||
[16:00:10] [OK] tunnel.manjapro.net
|
||||
[16:00:10] [OK] tunnel.manjapro.net
|
||||
[16:00:10] [OK] tunnel.manjapro.net
|
||||
[16:00:10] [OK] tunnel.manjapro.net
|
||||
[16:00:10] [OK] tunnel.manjapro.net
|
||||
[16:00:11] [FAIL] infinnet.cloud
|
||||
[16:00:11] [FAIL] tunnel.bilspro.com
|
||||
[16:00:11] [OK] tunnel.manjapro.net
|
||||
[16:00:14] [FAIL] tunnel.manjapro.net
|
||||
[16:00:15] [FAIL] 103.103.147.225
|
||||
[16:00:15] [FAIL] 157.20.12
|
||||
[16:00:15] [FAIL] 114.141.51.12
|
||||
[16:00:17] [FAIL] 114.141.51.12
|
||||
[2025-10-18 16:00:17] Semua child selesai. Mulai update DB...
|
||||
[16:00:17] [UPDATE DB] 03FK-Q7XE1
|
||||
[16:00:17] [UPDATE DB] IDLF-SK944
|
||||
[16:00:17] [UPDATE DB] TYF0-3RP75
|
||||
[16:00:18] [UPDATE DB] 0YDS-EI1V6
|
||||
[16:00:18] [UPDATE DB] C7CU-PGT97
|
||||
[16:00:18] [UPDATE STATUS] 7FZH-WIBI8 (Disconnected -> Disconnected)
|
||||
[16:00:19] [UPDATE DB] YHVJ-ZN9V9
|
||||
[16:00:20] [UPDATE DB] C7CU-PGT910
|
||||
[16:00:20] [UPDATE DB] MPK0-Q43P11
|
||||
[16:00:20] [UPDATE DB] S9QL-XRJ512
|
||||
[16:00:21] [UPDATE DB] HHJH-UFWL14
|
||||
[16:00:21] [UPDATE DB] 03FK-Q7XE15
|
||||
[16:00:21] [UPDATE DB] DG7B-JP4218
|
||||
[16:00:21] [UPDATE DB] XXWL-VMH419
|
||||
[16:00:21] [UPDATE DB] 03FK-Q7XE20
|
||||
[16:00:21] [UPDATE DB] C7CU-PGT922
|
||||
[16:00:21] [UPDATE DB] 8FHL-TXVS23
|
||||
[16:00:21] [UPDATE DB] Q23C-IE2524
|
||||
[16:00:21] [UPDATE DB] Q4D5-ATUM25
|
||||
[16:00:21] [UPDATE DB] HHJH-UFWL28
|
||||
[16:00:21] [UPDATE DB] 11P4-SII029
|
||||
[16:00:21] [UPDATE DB] CUAA-CD2K30
|
||||
[16:00:21] [UPDATE DB] S1Z8-TK6932
|
||||
[16:00:21] [UPDATE DB] H67G-R4AK33
|
||||
[16:00:21] [UPDATE STATUS] 9RV7-3W5U34 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] 32PA-DAZ435
|
||||
[16:00:21] [UPDATE STATUS] LJQ6-KDDJ37 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] 0TW0-J74U38
|
||||
[16:00:21] [UPDATE DB] L7TJ-IF2G39
|
||||
[16:00:21] [UPDATE DB] RWDJ-NXBZ40
|
||||
[16:00:21] [UPDATE DB] A26W-ART341
|
||||
[16:00:21] [UPDATE STATUS] RE5H-G12Y42 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] 03FK-Q7XE43 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] Q96U-20UZ44 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] D3TU-JN5745
|
||||
[16:00:21] [UPDATE DB] 7SDF-17X546
|
||||
[16:00:21] [UPDATE DB] HMAZ-3HSX51
|
||||
[16:00:21] [UPDATE STATUS] PQJB-HG8V53 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] PMA9-QC7654 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] 7ZCI-NFCI62 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] 0E73-PABK63 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] 4MZF-SFTR65 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] PJC8-K0EG66 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] 351D-5NCH67 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE STATUS] A0S7-K2IC69 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] G9Z1-HRLY70
|
||||
[16:00:21] [UPDATE STATUS] C7CU-PGT972 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] 66AU-Z7I573
|
||||
[16:00:21] [UPDATE DB] S9QL-XRJ575
|
||||
[16:00:21] [UPDATE DB] ABMS-YBP776
|
||||
[16:00:21] [UPDATE DB] C7CU-PGT977
|
||||
[16:00:21] [UPDATE DB] C7CU-PGT978
|
||||
[16:00:21] [UPDATE DB] HHJH-UFWL81
|
||||
[16:00:21] [UPDATE DB] 83
|
||||
[16:00:21] [UPDATE STATUS] RNS6-DB3N84 (Disconnected -> Disconnected)
|
||||
[16:00:21] [UPDATE DB] C7CU-PGT987
|
||||
[16:00:21] [UPDATE DB] ZMVC-KAFH88
|
||||
[2025-10-18 16:00:21] Update DB selesai. OK: 57, FAIL: 0
|
||||
[2025-10-18 16:00:21] Lama eksekusi: 19.82 detik
|
||||
[17:42:01] [OK] 103.26.176.81
|
||||
[17:42:01] [OK] 103.188.169.123
|
||||
[17:42:01] [OK] 103.26.176.85
|
||||
[17:42:01] [OK] 103.188.169.121
|
||||
[17:42:01] [OK] 103.26.176.83
|
||||
[17:42:01] [OK] tunnel.manjapro.net
|
||||
[17:42:01] [OK] tunnel.manjapro.net
|
||||
[17:42:01] [OK] tunnel.manjapro.net
|
||||
[17:42:01] [OK] tunnel.manjapro.net
|
||||
[17:42:01] [OK] 103.155.198.185
|
||||
[17:42:01] [OK] 103.188.169.127
|
||||
[17:42:01] [OK] tunnel.manjapro.net
|
||||
[17:42:02] [OK] tunnel.manjapro.net
|
||||
[17:42:02] [OK] 103.26.176.87
|
||||
[17:42:02] [OK] tunnel.manjapro.net
|
||||
[17:42:02] [OK] 103.236.190.109
|
||||
[17:42:02] [OK] tunnel.manjapro.net
|
||||
[17:42:02] [OK] 103.26.176.93
|
||||
[17:42:02] [OK] 103.155.196.145
|
||||
[17:42:02] [OK] 103.242.104.69
|
||||
[17:42:02] [OK] 103.31.233.237
|
||||
[17:42:02] [OK] gusjampang.xyz
|
||||
[17:42:03] [OK] tunnel.manjapro.net
|
||||
[17:42:03] [OK] tunnel.manjapro.net
|
||||
[17:42:03] [OK] 103.18.79.171
|
||||
[17:42:03] [OK] 103.155.199.191
|
||||
[17:42:04] [OK] tunnel.manjapro.net
|
||||
[17:42:04] [OK] 103.242.106.56
|
||||
[17:42:05] [FAIL] 103.67.80.126
|
||||
[17:42:05] [FAIL] 157.20.128.231
|
||||
[17:42:05] [OK] tunnel.manjapro.net
|
||||
[17:42:06] [FAIL] tunnel.bilspro.com
|
||||
[17:42:06] [FAIL] tunnel.bilspro.com
|
||||
[17:42:06] [FAIL] 103.94.10.240
|
||||
[17:42:06] [OK] tunnel.manjapro.net
|
||||
[17:42:07] [FAIL] 103.94.10.240
|
||||
[17:42:07] [FAIL] 103.94.10.240
|
||||
[17:42:07] [OK] tunnel.manjapro.net
|
||||
[17:42:08] [FAIL] tunnel.bilspro.com
|
||||
[17:42:09] [FAIL] infinnet.cloud
|
||||
[17:42:09] [OK] tunnel.manjapro.net
|
||||
[17:42:09] [OK] tunnel.manjapro.net
|
||||
[17:42:09] [OK] tunnel.manjapro.net
|
||||
[17:42:10] [OK] tunnel.manjapro.net
|
||||
[17:42:10] [OK] tunnel.manjapro.net
|
||||
[17:42:10] [OK] tunnel.manjapro.net
|
||||
[17:42:10] [OK] tunnel.manjapro.net
|
||||
[17:42:10] [OK] tunnel.manjapro.net
|
||||
[17:42:11] [FAIL] infinnet.cloud
|
||||
[17:42:11] [FAIL] tunnel.bilspro.com
|
||||
[17:42:11] [FAIL] 103.155.198.109
|
||||
[17:42:11] [OK] tunnel.manjapro.net
|
||||
[17:42:15] [FAIL] tunnel.manjapro.net
|
||||
[17:42:16] [FAIL] 157.20.12
|
||||
[17:42:16] [FAIL] tunnel.manjapro.net
|
||||
[17:42:16] [FAIL] 114.141.51.12
|
||||
[17:42:16] [FAIL] 114.141.51.12
|
||||
[17:42:17] [FAIL] 103.103.147.225
|
||||
[17:42:20] [FAIL] tunnel.manjapro.net
|
||||
[2025-11-10 17:42:20] Semua child selesai. Mulai update DB...
|
||||
[17:42:20] [UPDATE DB] 03FK-Q7XE1
|
||||
[17:42:20] [UPDATE DB] IDLF-SK944
|
||||
[17:42:20] [UPDATE DB] TYF0-3RP75
|
||||
[17:42:20] [UPDATE DB] 0YDS-EI1V6
|
||||
[17:42:20] [UPDATE DB] C7CU-PGT97
|
||||
[17:42:20] [UPDATE STATUS] 7FZH-WIBI8 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] YHVJ-ZN9V9
|
||||
[17:42:20] [UPDATE DB] C7CU-PGT910
|
||||
[17:42:20] [UPDATE DB] MPK0-Q43P11
|
||||
[17:42:20] [UPDATE DB] S9QL-XRJ512
|
||||
[17:42:20] [UPDATE DB] HHJH-UFWL14
|
||||
[17:42:20] [UPDATE DB] 03FK-Q7XE15
|
||||
[17:42:20] [UPDATE DB] DG7B-JP4218
|
||||
[17:42:20] [UPDATE DB] XXWL-VMH419
|
||||
[17:42:20] [UPDATE DB] 03FK-Q7XE20
|
||||
[17:42:20] [UPDATE DB] C7CU-PGT922
|
||||
[17:42:20] [UPDATE DB] 8FHL-TXVS23
|
||||
[17:42:20] [UPDATE DB] Q23C-IE2524
|
||||
[17:42:20] [UPDATE STATUS] Q4D5-ATUM25 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] 03FK-Q7XE28
|
||||
[17:42:20] [UPDATE DB] 11P4-SII029
|
||||
[17:42:20] [UPDATE DB] CUAA-CD2K30
|
||||
[17:42:20] [UPDATE DB] 03FK-Q7XE32
|
||||
[17:42:20] [UPDATE DB] H67G-R4AK33
|
||||
[17:42:20] [UPDATE STATUS] 9RV7-3W5U34 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] 32PA-DAZ435
|
||||
[17:42:20] [UPDATE STATUS] LJQ6-KDDJ37 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] 0TW0-J74U38
|
||||
[17:42:20] [UPDATE DB] L7TJ-IF2G39
|
||||
[17:42:20] [UPDATE DB] RWDJ-NXBZ40
|
||||
[17:42:20] [UPDATE DB] A26W-ART341
|
||||
[17:42:20] [UPDATE STATUS] RE5H-G12Y42 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] 03FK-Q7XE43 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] Q96U-20UZ44 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] D3TU-JN5745
|
||||
[17:42:20] [UPDATE DB] 7SDF-17X546
|
||||
[17:42:20] [UPDATE DB] HMAZ-3HSX51
|
||||
[17:42:20] [UPDATE STATUS] PQJB-HG8V53 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] PMA9-QC7654 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] 7ZCI-NFCI62 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] 0E73-PABK63 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] 4MZF-SFTR65 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] PJC8-K0EG66 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] 351D-5NCH67 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] A0S7-K2IC69 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] G9Z1-HRLY70
|
||||
[17:42:20] [UPDATE STATUS] C7CU-PGT972 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] 66AU-Z7I573
|
||||
[17:42:20] [UPDATE DB] S9QL-XRJ575
|
||||
[17:42:20] [UPDATE DB] ABMS-YBP776
|
||||
[17:42:20] [UPDATE DB] C7CU-PGT977
|
||||
[17:42:20] [UPDATE DB] C7CU-PGT978
|
||||
[17:42:20] [UPDATE DB] HHJH-UFWL81
|
||||
[17:42:20] [UPDATE DB] 83
|
||||
[17:42:20] [UPDATE STATUS] RNS6-DB3N84 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE STATUS] C7CU-PGT987 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] ZMVC-KAFH88
|
||||
[17:42:20] [UPDATE STATUS] L5BR-E8QA89 (Disconnected -> Disconnected)
|
||||
[17:42:20] [UPDATE DB] XNEQ-GB6L90
|
||||
[2025-11-10 17:42:20] Update DB selesai. OK: 59, FAIL: 0
|
||||
[2025-11-10 17:42:20] Lama eksekusi: 19.57 detik
|
||||
|
||||
@@ -1 +1 @@
|
||||
[2025-10-18 16:00:01] Tidak ada remote expired.
|
||||
[2025-11-10 17:40:02] Remote port 12911 berhasil ditutup.
|
||||
|
||||
@@ -1 +1 @@
|
||||
[2025-10-17 23:50:02] 0 data telah dihapus. Data tersisa sejak 2025-09-01 00:00:00 sampai sekarang.
|
||||
[2025-11-09 23:50:02] 0 data telah dihapus. Data tersisa sejak 2025-10-01 00:00:00 sampai sekarang.
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
// /**
|
||||
// * File: /www/wwwroot/bilspro/cron/flip_auto_inactive.php
|
||||
// * Jalankan via cron: */10 * * * * php /www/wwwroot/bilspro/cron/flip_auto_inactive.php >/dev/null 2>&1
|
||||
// */
|
||||
|
||||
ini_set('max_execution_time', 60);
|
||||
ini_set('memory_limit', '256M');
|
||||
date_default_timezone_set('Asia/Jakarta');
|
||||
|
||||
require "/www/wwwroot/bilspro/config/connect.php";
|
||||
require "/www/wwwroot/bilspro/payment/flip/Flip/Transaction.php";
|
||||
|
||||
try {
|
||||
// Ambil maksimum 5 data agar ringan
|
||||
$sql = "
|
||||
SELECT
|
||||
a.id,
|
||||
a.transaction_id,
|
||||
b.apikey_payment_gateway,
|
||||
b.url_payment_gateway
|
||||
FROM
|
||||
tagihan a
|
||||
LEFT JOIN
|
||||
data_server b ON a.id_data_server = b.id
|
||||
WHERE
|
||||
a.status = 'lewat'
|
||||
AND a.transaction_id != ''
|
||||
AND a.transaction_status = 'ACTIVE'
|
||||
AND b.payment_gateway = 'flip'
|
||||
AND b.status_payment_gateway = 'ACTIVE'
|
||||
AND (
|
||||
YEAR(a.limit_pembayaran) < YEAR(NOW())
|
||||
OR (
|
||||
YEAR(a.limit_pembayaran) = YEAR(NOW())
|
||||
AND MONTH(a.limit_pembayaran) < MONTH(NOW())
|
||||
)
|
||||
)
|
||||
ORDER BY a.limit_pembayaran ASC
|
||||
LIMIT 5
|
||||
";
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (empty($data)) {
|
||||
exit; // tidak ada data, langsung keluar biar hemat resource
|
||||
}
|
||||
|
||||
$logFile = "/www/wwwroot/bilspro/load/cronjob/flip_auto_inactive.log";
|
||||
if (!file_exists(dirname($logFile))) {
|
||||
mkdir(dirname($logFile), 0777, true);
|
||||
}
|
||||
|
||||
$results = [];
|
||||
|
||||
foreach ($data as $row) {
|
||||
try {
|
||||
$flip = new FlipPaymentGateway($row['apikey_payment_gateway'], $row['url_payment_gateway']);
|
||||
$response = $flip->getBillStatus($row['transaction_id']);
|
||||
|
||||
if (!is_array($response) || empty($response['link_id'])) {
|
||||
$results[] = [
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid or missing response from Flip API'
|
||||
];
|
||||
continue;
|
||||
}
|
||||
|
||||
$delete = $flip->editBill(
|
||||
$response['link_id'],
|
||||
'INACTIVE',
|
||||
$response['title'] ?? '',
|
||||
$response['amount'] ?? 0
|
||||
);
|
||||
|
||||
$results[] = [
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'flip_response' => $delete
|
||||
];
|
||||
|
||||
if ($delete) {
|
||||
$update = $pdo->prepare("UPDATE tagihan SET transaction_status = 'INACTIVE' WHERE id = :id");
|
||||
$update->execute([':id' => $row['id']]);
|
||||
}
|
||||
|
||||
// Delay 1 detik antar request agar tidak membanjiri Flip API
|
||||
sleep(1);
|
||||
} catch (Exception $e) {
|
||||
$results[] = [
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'status' => 'error',
|
||||
'message' => $e->getMessage()
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// Simpan hasil ke log file, bukan echo ke output
|
||||
file_put_contents(
|
||||
$logFile,
|
||||
"[" . date('Y-m-d H:i:s') . "] " . json_encode($results, JSON_UNESCAPED_SLASHES) . PHP_EOL,
|
||||
FILE_APPEND
|
||||
);
|
||||
|
||||
} catch (Throwable $e) {
|
||||
// Tangkap semua error (PDO/Exception)
|
||||
file_put_contents(
|
||||
"/www/wwwroot/bilspro/load/cronjob/flip_auto_inactive_error.log",
|
||||
"[" . date('Y-m-d H:i:s') . "] ERROR: " . $e->getMessage() . PHP_EOL,
|
||||
FILE_APPEND
|
||||
);
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
2025-10-18 16:00:06 ✅ Summary updated, rows affected: 1627
|
||||
2025-11-10 17:30:07 ✅ Summary updated, rows affected: 1784
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
Voucher: PG12HJNHP8KQ<br>Aktif => 2025-11-10 06:54:16<br>Format durasi tidak valid.<br>PHP Fatal error: Uncaught Exception: DateInterval::__construct(): Unknown or bad format () in /www/wwwroot/bilspro/load/hotspot_update.php:70
|
||||
Stack trace:
|
||||
#0 /www/wwwroot/bilspro/load/hotspot_update.php(70): DateInterval->__construct()
|
||||
#1 {main}
|
||||
thrown in /www/wwwroot/bilspro/load/hotspot_update.php on line 70
|
||||
|
||||
Fatal error: Uncaught Exception: DateInterval::__construct(): Unknown or bad format () in /www/wwwroot/bilspro/load/hotspot_update.php:70
|
||||
Stack trace:
|
||||
#0 /www/wwwroot/bilspro/load/hotspot_update.php(70): DateInterval->__construct()
|
||||
#1 {main}
|
||||
thrown in /www/wwwroot/bilspro/load/hotspot_update.php on line 70
|
||||
|
||||
+17
-15
@@ -1,23 +1,23 @@
|
||||
SV_Cikembar_Utama Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_BojongKerta Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01RO Bima Net Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_Kingnet_Cibadak Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_CC-Net_Cipicung Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_Nusaina_Cibadak Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_Diamond Net Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:12:01SV_BojongKerta Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01RO Bima Net Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01SV_Kingnet_Cibadak Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01SV_CC-Net_Cipicung Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01SV_Nusaina_Cibadak Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01SV_Diamond Net Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
SV_22P Net Cibadak Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01SV_Nettizen_Segaranten Data pelanggan tidak ada
|
||||
2025-10-18 15:00:01SV-DNY-Net-1 Data pelanggan tidak ada
|
||||
2025-10-18 15:40:01SV_NTA_2_PSW_1 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:12:01SV_Nettizen_Segaranten Data pelanggan tidak ada
|
||||
2025-11-10 16:42:01SV-DNY-Net-1 Data pelanggan tidak ada
|
||||
2025-11-10 17:22:01SV_NTA_2_PSW_1 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
SV_NTA_1 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
SV-Cicukang Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
RO-Bumdes-Mekarmanah Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
RO-Pak-Kholiq Data pelanggan tidak ada
|
||||
2025-10-18 15:45:01RO-Dendrit-Net Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:27:01RO-Dendrit-Net Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
LJN.NS.CSR.NET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
IVVINET-CBD Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01QONNET Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01Mikrotik_X86 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:12:01QONNET Data pelanggan tidak ada
|
||||
2025-11-10 17:12:01Mikrotik_X86 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Mikrotik_BSW_1 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Mikrotik_Alea Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
STANG Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
@@ -37,16 +37,16 @@ RO_Wargasari Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
LJN_AGUNG Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
RNET-CMS Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
DCN-GB-CCR Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01412NET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:12:01412NET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
brf Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
BMSNET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
purabaya Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
DCN-CO-GX4 Data pelanggan tidak ada
|
||||
2025-10-18 15:30:01MIKROTIK GX4 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:12:01MIKROTIK GX4 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
RO - Netborhood Wifi Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Neglasari Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
SV-DNY-Net-2 Data pelanggan tidak ada
|
||||
2025-10-18 15:40:01DNY-Neglasari Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
2025-11-10 17:22:01DNY-Neglasari Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
RO_TTO Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
AP - NET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
GAS NET Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
@@ -55,3 +55,5 @@ chr tencent Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
DamarisNet Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Triunsa Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Mikrotik GR 3 Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Mikrotik_Kenzinet Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
Mikrotik Distribusi Status koneksi tidak aktif atau interval tidak tersedia.
|
||||
|
||||
@@ -8,14 +8,14 @@ Successfully started background process for IP: 103.155.199.191 PERWASIM-NETWORK
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV_NTA_2_PSW_1
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV-Cicukang
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV_NTA_1
|
||||
Successfully started background process for IP: 103.94.10.112 STANG
|
||||
Successfully started background process for IP: 157.20.128.231 QONNET
|
||||
Successfully started background process for IP: 103.155.198.185 SV_Cikembar_Utama
|
||||
Successfully started background process for IP: 103.155.196.145 UNIX-NET
|
||||
Successfully started background process for IP: 103.26.176.81 SV_CC-Net_Cipicung
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV-DNY-Net-2
|
||||
Successfully started background process for IP: tunnel.manjapro.net Mikrotik_X86
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV_NTA_2_PSW_2
|
||||
Successfully started background process for IP: tunnel.manjapro.net Triunsa
|
||||
Successfully started background process for IP: tunnel.manjapro.net SV_Diamond Net
|
||||
Started parallel processes for checking vouchers. => 2025-10-18 16:00:02
|
||||
Successfully started background process for IP: tunnel.manjapro.net RO_Wargasari
|
||||
Successfully started background process for IP: tunnel.manjapro.net RO_Sukasari
|
||||
Successfully started background process for IP: tunnel.manjapro.net GAS NET
|
||||
Started parallel processes for checking vouchers. => 2025-11-10 17:30:02
|
||||
@@ -27,8 +27,8 @@ foreach ($whatsapp as $waKey) {
|
||||
|
||||
$access_token = $waKey['token_access'];
|
||||
$phone_number_id = $waKey['number_id'];
|
||||
$url = "https://graph.facebook.com/v17.0/$phone_number_id/messages";
|
||||
$data = json_decode($pesan['pesan'], true);
|
||||
$url = "https://graph.facebook.com/v20.0/$phone_number_id/messages";
|
||||
$reply = json_decode($pesan['pesan'], true);
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
@@ -37,7 +37,7 @@ foreach ($whatsapp as $waKey) {
|
||||
"Content-Type: application/json"
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($reply));
|
||||
|
||||
$response = curl_exec($ch);
|
||||
|
||||
@@ -57,10 +57,15 @@ foreach ($whatsapp as $waKey) {
|
||||
}
|
||||
}
|
||||
|
||||
echo "<pre>";
|
||||
print_r($responseData);
|
||||
echo "</pre>";
|
||||
|
||||
// kirim ke aplikasi 2
|
||||
forwardToApp2([
|
||||
"data" => $data,
|
||||
"respon" => $response
|
||||
"data" => $reply,
|
||||
"phone_id" => $phone_number_id,
|
||||
"respon" => $response
|
||||
]);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
// Aktifkan error log
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 0);
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('log_errors', 1);
|
||||
ini_set('error_log', __DIR__ . '/../logs/load_tagihan_flip.log');
|
||||
|
||||
@@ -12,7 +12,7 @@ include "../config/whatsapp_api.php";
|
||||
|
||||
try {
|
||||
// Ambil data tagihan sukses maksimal 5
|
||||
$datetime = date('Y-m-d H:i:s', time() - 60);
|
||||
$datetime = date('Y-m-d H:i:s', time() - 360);
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT * FROM v_tagihan_flip_lunas
|
||||
WHERE last_mikrotik_connect > :datetime
|
||||
@@ -106,11 +106,23 @@ try {
|
||||
imagestring($img, 5, 50, 350, '______________________________', $orange);
|
||||
|
||||
$invoicePath = '../invoice/' . $invoice;
|
||||
|
||||
$invoicePathMinio = 'invoice/' . $invoice;
|
||||
require '../controller/uploadMinioFiles.php';
|
||||
ob_start();
|
||||
imagepng($img);
|
||||
$imageData = ob_get_clean();
|
||||
|
||||
if (!imagepng($img, $invoicePath)) {
|
||||
throw new Exception("Gagal menyimpan kwitansi ke $invoicePath");
|
||||
}
|
||||
|
||||
// Upload file ke Minio
|
||||
$responMinio = uploadToMinioStorageRaw($imageData,$invoicePathMinio);
|
||||
|
||||
imagedestroy($img);
|
||||
|
||||
|
||||
echo $responsMinio;
|
||||
// Aktifkan user Mikrotik
|
||||
$API = new RouterosAPI();
|
||||
$API->debug = false;
|
||||
@@ -162,7 +174,9 @@ try {
|
||||
|
||||
// Kirim WhatsApp dengan kwitansi
|
||||
$nomor = explode(',', $tagihan['nomor_whatsapp']);
|
||||
$urlInvoice = 'https://manjapro.net/invoice/' . $invoice;
|
||||
// $urlInvoice = 'https://manjapro.net/invoice/' . $invoice;
|
||||
|
||||
$urlInvoice = $responMinio;
|
||||
|
||||
// Cek transaksi dengan id tagihan
|
||||
$stmt = $pdo->prepare("SELECT id_tagihan FROM transaksi WHERE id_tagihan = :id AND metode_pembayaran = :metode");
|
||||
|
||||
@@ -113,9 +113,20 @@ try {
|
||||
imagestring($img, 5, 50, 350, '______________________________', $orange);
|
||||
|
||||
$invoicePath = '../invoice/' . $invoice;
|
||||
|
||||
$invoicePathMinio = 'invoice/' . $invoice;
|
||||
require '../controller/uploadMinioFiles.php';
|
||||
ob_start();
|
||||
imagepng($img);
|
||||
$imageData = ob_get_clean();
|
||||
|
||||
if (!imagepng($img, $invoicePath)) {
|
||||
throw new Exception("Gagal menyimpan kwitansi ke $invoicePath");
|
||||
}
|
||||
|
||||
// Upload file ke Minio
|
||||
uploadToMinioStorageRaw($imageData,$invoicePathMinio);
|
||||
|
||||
imagedestroy($img);
|
||||
|
||||
// Aktifkan user Mikrotik
|
||||
|
||||
+19542
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -21,6 +21,7 @@ Mikrotik_X86 =><br>
|
||||
Mikrotik_BSW_1 =><br>
|
||||
Mikrotik_Alea =><br>
|
||||
STANG =><br>
|
||||
UNIX-NET =><br>
|
||||
SV_NTA_2_TBL =><br>
|
||||
MULYANAJAYA =><br>
|
||||
PERWASIM-NETWORK =><br>
|
||||
@@ -49,7 +50,7 @@ RO_TTO =><br>
|
||||
AP - NET =><br>
|
||||
GAS NET =><br>
|
||||
SV_NTA_2_PSW_2 =><br>
|
||||
chr tencent =><br>
|
||||
DamarisNet =><br>
|
||||
Triunsa =><br>
|
||||
Mikrotik GR 3 =><br>
|
||||
Mikrotik_Kenzinet =><br>
|
||||
|
||||
@@ -1 +1 @@
|
||||
Tidak perlu update untuk ID: 2 Rp.200,000<br>Harga khusus untuk ID: 3 Rp.250,000<br>Tidak perlu update untuk ID: 4 Rp.300,000<br>Tidak perlu update untuk ID: 5 Rp.300,000<br>Tidak perlu update untuk ID: 6 Rp.200,000<br>Harga khusus untuk ID: 7 Rp.200,000<br>Tidak perlu update untuk ID: 8 Rp.200,000<br>Tidak perlu update untuk ID: 9 Rp.200,000<br>Tidak perlu update untuk ID: 10 Rp.200,000<br>Tidak perlu update untuk ID: 12 Rp.750,000<br>Tidak perlu update untuk ID: 13 Rp.750,000<br>Tidak perlu update untuk ID: 14 Rp.450,000<br>Tidak perlu update untuk ID: 15 Rp.450,000<br>Tidak perlu update untuk ID: 16 Rp.300,000<br>Harga khusus untuk ID: 17 Rp.300,000<br>Tidak perlu update untuk ID: 18 Rp.300,000<br>Tidak perlu update untuk ID: 19 Rp.450,000<br>Tidak perlu update untuk ID: 20 Rp.200,000<br>Tidak perlu update untuk ID: 21 Rp.300,000<br>Tidak perlu update untuk ID: 22 Rp.300,000<br>Tidak perlu update untuk ID: 23 Rp.450,000<br>Tidak perlu update untuk ID: 24 Rp.200,000<br>Tidak perlu update untuk ID: 25 Rp.250,000<br>Tidak perlu update untuk ID: 26 Rp.200,000<br>Tidak perlu update untuk ID: 28 Rp.200,000<br>Tidak perlu update untuk ID: 29 Rp.300,000<br>Tidak perlu update untuk ID: 30 Rp.200,000<br>Tidak perlu update untuk ID: 31 Rp.300,000<br>Tidak perlu update untuk ID: 32 Rp.200,000<br>Tidak perlu update untuk ID: 33 Rp.200,000<br>Tidak perlu update untuk ID: 34 Rp.200,000<br>Tidak perlu update untuk ID: 35 Rp.200,000<br>Tidak perlu update untuk ID: 36 Rp.200,000<br>Tidak perlu update untuk ID: 37 Rp.300,000<br>Tidak perlu update untuk ID: 38 Rp.200,000<br>Tidak perlu update untuk ID: 39 Rp.200,000<br>Harga khusus untuk ID: 40 Rp.1,000,000<br>Tidak perlu update untuk ID: 41 Rp.200,000<br>Tidak perlu update untuk ID: 42 Rp.200,000<br>Harga khusus untuk ID: 43 Rp.100,000<br>Tidak perlu update untuk ID: 44 Rp.200,000<br>Tidak perlu update untuk ID: 45 Rp.300,000<br>Tidak perlu update untuk ID: 46 Rp.200,000<br>Tidak perlu update untuk ID: 47 Rp.200,000<br>Tidak perlu update untuk ID: 48 Rp.200,000<br>Tidak perlu update untuk ID: 49 Rp.200,000<br>Tidak perlu update untuk ID: 50 Rp.200,000<br>Tidak perlu update untuk ID: 51 Rp.200,000<br>Tidak perlu update untuk ID: 52 Rp.1,000,000<br>Tidak perlu update untuk ID: 53 Rp.200,000<br>Tidak perlu update untuk ID: 54 Rp.200,000<br>Tidak perlu update untuk ID: 55 Rp.200,000<br>Tidak perlu update untuk ID: 56 Rp.200,000<br>Tidak perlu update untuk ID: 57 Rp.200,000<br>Tidak perlu update untuk ID: 58 Rp.200,000<br>Tidak perlu update untuk ID: 59 Rp.200,000<br>Tidak perlu update untuk ID: 60 Rp.200,000<br>Tidak perlu update untuk ID: 61 Rp.300,000<br>Tidak perlu update untuk ID: 62 Rp.200,000<br>Tidak perlu update untuk ID: 63 Rp.200,000<br>Tidak perlu update untuk ID: 64 Rp.200,000<br>Tidak perlu update untuk ID: 65 Rp.200,000<br>Tidak perlu update untuk ID: 66 Rp.200,000<br>Tidak perlu update untuk ID: 67 Rp.200,000<br>Harga khusus untuk ID: 68 Rp.200,000<br>Harga khusus untuk ID: 69 Rp.200,000<br>Tidak perlu update untuk ID: 70 Rp.200,000<br>Tidak perlu update untuk ID: 71 Rp.200,000<br>Tidak perlu update untuk ID: 72 Rp.200,000<br>Tidak perlu update untuk ID: 73 Rp.200,000<br>Harga khusus untuk ID: 74 Rp.0<br>Harga khusus untuk ID: 75 Rp.0<br>Harga khusus untuk ID: 76 Rp.0<br>Tidak perlu update untuk ID: 77 Rp.200,000<br>Harga khusus untuk ID: 78 Rp.200,000<br>Harga khusus untuk ID: 79 Rp.200,000<br>1601 data pesan sebelum 3 hari terakhir berhasil dihapus.<br>
|
||||
Tidak perlu update untuk ID: 2 Rp.200,000<br>Harga khusus untuk ID: 3 Rp.250,000<br>Tidak perlu update untuk ID: 4 Rp.300,000<br>Tidak perlu update untuk ID: 5 Rp.300,000<br>Tidak perlu update untuk ID: 6 Rp.200,000<br>Harga khusus untuk ID: 7 Rp.200,000<br>Tidak perlu update untuk ID: 8 Rp.200,000<br>Tidak perlu update untuk ID: 9 Rp.200,000<br>Tidak perlu update untuk ID: 10 Rp.200,000<br>Tidak perlu update untuk ID: 12 Rp.750,000<br>Tidak perlu update untuk ID: 13 Rp.750,000<br>Tidak perlu update untuk ID: 14 Rp.450,000<br>Tidak perlu update untuk ID: 15 Rp.450,000<br>Tidak perlu update untuk ID: 16 Rp.300,000<br>Harga khusus untuk ID: 17 Rp.300,000<br>Tidak perlu update untuk ID: 18 Rp.300,000<br>Tidak perlu update untuk ID: 19 Rp.450,000<br>Tidak perlu update untuk ID: 20 Rp.200,000<br>Tidak perlu update untuk ID: 21 Rp.300,000<br>Tidak perlu update untuk ID: 22 Rp.300,000<br>Tidak perlu update untuk ID: 23 Rp.450,000<br>Tidak perlu update untuk ID: 24 Rp.200,000<br>Tidak perlu update untuk ID: 25 Rp.250,000<br>Tidak perlu update untuk ID: 26 Rp.200,000<br>Tidak perlu update untuk ID: 28 Rp.200,000<br>Tidak perlu update untuk ID: 29 Rp.300,000<br>Tidak perlu update untuk ID: 30 Rp.200,000<br>Tidak perlu update untuk ID: 31 Rp.300,000<br>Tidak perlu update untuk ID: 32 Rp.200,000<br>Tidak perlu update untuk ID: 33 Rp.200,000<br>Tidak perlu update untuk ID: 34 Rp.200,000<br>Tidak perlu update untuk ID: 35 Rp.200,000<br>Tidak perlu update untuk ID: 36 Rp.200,000<br>Tidak perlu update untuk ID: 37 Rp.300,000<br>Tidak perlu update untuk ID: 38 Rp.200,000<br>Tidak perlu update untuk ID: 39 Rp.200,000<br>Harga khusus untuk ID: 40 Rp.1,000,000<br>Tidak perlu update untuk ID: 41 Rp.200,000<br>Harga harus diupdate untuk ID Data Server: 42 Rp.300,000<br>Harga khusus untuk ID: 43 Rp.100,000<br>Tidak perlu update untuk ID: 44 Rp.200,000<br>Tidak perlu update untuk ID: 45 Rp.300,000<br>Tidak perlu update untuk ID: 46 Rp.200,000<br>Tidak perlu update untuk ID: 47 Rp.200,000<br>Tidak perlu update untuk ID: 48 Rp.200,000<br>Tidak perlu update untuk ID: 49 Rp.200,000<br>Tidak perlu update untuk ID: 50 Rp.200,000<br>Tidak perlu update untuk ID: 51 Rp.200,000<br>Tidak perlu update untuk ID: 52 Rp.1,000,000<br>Tidak perlu update untuk ID: 53 Rp.200,000<br>Tidak perlu update untuk ID: 54 Rp.200,000<br>Tidak perlu update untuk ID: 55 Rp.200,000<br>Tidak perlu update untuk ID: 56 Rp.200,000<br>Tidak perlu update untuk ID: 57 Rp.200,000<br>Tidak perlu update untuk ID: 58 Rp.200,000<br>Tidak perlu update untuk ID: 59 Rp.200,000<br>Tidak perlu update untuk ID: 60 Rp.200,000<br>Tidak perlu update untuk ID: 61 Rp.300,000<br>Tidak perlu update untuk ID: 62 Rp.200,000<br>Tidak perlu update untuk ID: 63 Rp.200,000<br>Tidak perlu update untuk ID: 64 Rp.200,000<br>Tidak perlu update untuk ID: 65 Rp.200,000<br>Tidak perlu update untuk ID: 66 Rp.200,000<br>Tidak perlu update untuk ID: 67 Rp.200,000<br>Harga khusus untuk ID: 68 Rp.200,000<br>Harga khusus untuk ID: 69 Rp.200,000<br>Tidak perlu update untuk ID: 70 Rp.200,000<br>Tidak perlu update untuk ID: 71 Rp.200,000<br>Tidak perlu update untuk ID: 72 Rp.200,000<br>Tidak perlu update untuk ID: 73 Rp.200,000<br>Harga khusus untuk ID: 74 Rp.0<br>Harga khusus untuk ID: 75 Rp.0<br>Tidak perlu update untuk ID: 76 Rp.200,000<br>Tidak perlu update untuk ID: 77 Rp.200,000<br>Harga khusus untuk ID: 78 Rp.200,000<br>Harga khusus untuk ID: 79 Rp.200,000<br>Harga khusus untuk ID: 80 Rp.200,000<br>Harga khusus untuk ID: 81 Rp.300,000<br>
|
||||
+13
-13
@@ -56,22 +56,22 @@ try {
|
||||
}
|
||||
}
|
||||
|
||||
$sekarang = date('Y-m-d H:i:s');
|
||||
$harilalu = date('Y-m-d H:i:s', strtotime("$sekarang -3 days"));
|
||||
// $sekarang = date('Y-m-d H:i:s');
|
||||
// $harilalu = date('Y-m-d H:i:s', strtotime("$sekarang -3 days"));
|
||||
|
||||
// Hitung jumlah data yang akan dihapus
|
||||
$sqlCount = "SELECT COUNT(id) AS jumid FROM master_pesan WHERE waktu <= :harilalu";
|
||||
$stmtCount = $pdo->prepare($sqlCount);
|
||||
$stmtCount->execute(['harilalu' => $harilalu]);
|
||||
$pp = $stmtCount->fetch(PDO::FETCH_ASSOC);
|
||||
$jumlahHapus = $pp['jumid'] ?? 0;
|
||||
// // Hitung jumlah data yang akan dihapus
|
||||
// $sqlCount = "SELECT COUNT(id) AS jumid FROM master_pesan WHERE waktu <= :harilalu";
|
||||
// $stmtCount = $pdo->prepare($sqlCount);
|
||||
// $stmtCount->execute(['harilalu' => $harilalu]);
|
||||
// $pp = $stmtCount->fetch(PDO::FETCH_ASSOC);
|
||||
// $jumlahHapus = $pp['jumid'] ?? 0;
|
||||
|
||||
// Hapus data
|
||||
$sqlDelete = "DELETE FROM master_pesan WHERE waktu <= :harilalu";
|
||||
$stmtDelete = $pdo->prepare($sqlDelete);
|
||||
$stmtDelete->execute(['harilalu' => $harilalu]);
|
||||
// // Hapus data
|
||||
// $sqlDelete = "DELETE FROM master_pesan WHERE waktu <= :harilalu";
|
||||
// $stmtDelete = $pdo->prepare($sqlDelete);
|
||||
// $stmtDelete->execute(['harilalu' => $harilalu]);
|
||||
|
||||
echo $jumlahHapus . " data pesan sebelum 3 hari terakhir berhasil dihapus.<br>";
|
||||
// echo $jumlahHapus . " data pesan sebelum 3 hari terakhir berhasil dihapus.<br>";
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Tangani kesalahan koneksi atau query
|
||||
|
||||
Reference in New Issue
Block a user