update cara upload gambar
This commit is contained in:
@@ -1,121 +1,121 @@
|
||||
[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
|
||||
[12:54:01] [OK] 103.26.176.81
|
||||
[12:54:01] [OK] 103.188.169.123
|
||||
[12:54:01] [OK] 103.26.176.85
|
||||
[12:54:01] [OK] 103.26.176.83
|
||||
[12:54:01] [OK] 103.188.169.121
|
||||
[12:54:01] [OK] tunnel.manjapro.net
|
||||
[12:54:01] [OK] tunnel.manjapro.net
|
||||
[12:54:01] [OK] 103.155.198.185
|
||||
[12:54:01] [OK] tunnel.manjapro.net
|
||||
[12:54:01] [OK] 103.188.169.127
|
||||
[12:54:01] [OK] tunnel.manjapro.net
|
||||
[12:54:01] [OK] tunnel.manjapro.net
|
||||
[12:54:02] [OK] 103.26.176.87
|
||||
[12:54:02] [OK] tunnel.manjapro.net
|
||||
[12:54:02] [OK] tunnel.manjapro.net
|
||||
[12:54:02] [OK] tunnel.manjapro.net
|
||||
[12:54:02] [OK] 103.26.176.93
|
||||
[12:54:02] [OK] 103.236.190.109
|
||||
[12:54:02] [OK] 103.155.196.145
|
||||
[12:54:02] [OK] 103.31.233.237
|
||||
[12:54:02] [OK] 103.242.104.69
|
||||
[12:54:02] [OK] gusjampang.xyz
|
||||
[12:54:02] [OK] tunnel.manjapro.net
|
||||
[12:54:03] [OK] 103.18.79.171
|
||||
[12:54:03] [OK] 103.155.199.191
|
||||
[12:54:04] [OK] tunnel.manjapro.net
|
||||
[12:54:05] [OK] tunnel.manjapro.net
|
||||
[12:54:05] [FAIL] 103.67.80.126
|
||||
[12:54:05] [OK] 103.242.106.56
|
||||
[12:54:05] [OK] tunnel.manjapro.net
|
||||
[12:54:05] [FAIL] 157.20.128.231
|
||||
[12:54:06] [FAIL] tunnel.bilspro.com
|
||||
[12:54:06] [FAIL] tunnel.bilspro.com
|
||||
[12:54:06] [FAIL] 103.94.10.240
|
||||
[12:54:06] [FAIL] 103.94.10.240
|
||||
[12:54:07] [FAIL] 103.94.10.240
|
||||
[12:54:07] [OK] tunnel.manjapro.net
|
||||
[12:54:09] [FAIL] tunnel.bilspro.com
|
||||
[12:54:10] [FAIL] infinnet.cloud
|
||||
[12:54:10] [FAIL] 103.155.198.109
|
||||
[12:54:10] [FAIL] tunnel.manjapro.net
|
||||
[12:54:10] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [FAIL] infinnet.cloud
|
||||
[12:54:11] [FAIL] tunnel.bilspro.com
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:11] [OK] tunnel.manjapro.net
|
||||
[12:54:12] [OK] tunnel.manjapro.net
|
||||
[12:54:15] [FAIL] tunnel.manjapro.net
|
||||
[12:54:16] [FAIL] 157.20.12
|
||||
[12:54:16] [FAIL] tunnel.manjapro.net
|
||||
[12:54:16] [FAIL] 114.141.51.12
|
||||
[12:54:16] [FAIL] 114.141.51.12
|
||||
[12:54:17] [FAIL] 103.103.147.225
|
||||
[12:54:19] [FAIL] tunnel.manjapro.net
|
||||
[2025-11-11 12:54:19] Semua child selesai. Mulai update DB...
|
||||
[12:54:19] [UPDATE DB] 03FK-Q7XE1
|
||||
[12:54:19] [UPDATE DB] IDLF-SK944
|
||||
[12:54:19] [UPDATE DB] TYF0-3RP75
|
||||
[12:54:19] [UPDATE DB] 0YDS-EI1V6
|
||||
[12:54:19] [UPDATE DB] C7CU-PGT97
|
||||
[12:54:19] [UPDATE STATUS] 7FZH-WIBI8 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] YHVJ-ZN9V9
|
||||
[12:54:19] [UPDATE DB] C7CU-PGT910
|
||||
[12:54:19] [UPDATE DB] MPK0-Q43P11
|
||||
[12:54:19] [UPDATE DB] S9QL-XRJ512
|
||||
[12:54:19] [UPDATE DB] HHJH-UFWL14
|
||||
[12:54:19] [UPDATE DB] 03FK-Q7XE15
|
||||
[12:54:19] [UPDATE DB] DG7B-JP4218
|
||||
[12:54:19] [UPDATE DB] XXWL-VMH419
|
||||
[12:54:19] [UPDATE DB] 03FK-Q7XE20
|
||||
[12:54:19] [UPDATE DB] C7CU-PGT922
|
||||
[12:54:19] [UPDATE DB] 8FHL-TXVS23
|
||||
[12:54:19] [UPDATE DB] Q23C-IE2524
|
||||
[12:54:19] [UPDATE STATUS] Q4D5-ATUM25 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] 03FK-Q7XE28
|
||||
[12:54:19] [UPDATE DB] 11P4-SII029
|
||||
[12:54:19] [UPDATE DB] CUAA-CD2K30
|
||||
[12:54:19] [UPDATE DB] 03FK-Q7XE32
|
||||
[12:54:19] [UPDATE DB] H67G-R4AK33
|
||||
[12:54:19] [UPDATE STATUS] 9RV7-3W5U34 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] 32PA-DAZ435
|
||||
[12:54:19] [UPDATE STATUS] LJQ6-KDDJ37 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] 0TW0-J74U38
|
||||
[12:54:19] [UPDATE DB] L7TJ-IF2G39
|
||||
[12:54:19] [UPDATE DB] RWDJ-NXBZ40
|
||||
[12:54:19] [UPDATE STATUS] A26W-ART341 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] RE5H-G12Y42 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] 03FK-Q7XE43 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] Q96U-20UZ44 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] D3TU-JN5745
|
||||
[12:54:19] [UPDATE DB] 7SDF-17X546
|
||||
[12:54:19] [UPDATE DB] HMAZ-3HSX51
|
||||
[12:54:19] [UPDATE STATUS] PQJB-HG8V53 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] PMA9-QC7654 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] 7ZCI-NFCI62 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] 0E73-PABK63 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] 4MZF-SFTR65 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] PJC8-K0EG66 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] 351D-5NCH67 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] A0S7-K2IC69 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] G9Z1-HRLY70
|
||||
[12:54:19] [UPDATE STATUS] C7CU-PGT972 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] 66AU-Z7I573
|
||||
[12:54:19] [UPDATE DB] S9QL-XRJ575
|
||||
[12:54:19] [UPDATE DB] ABMS-YBP776
|
||||
[12:54:19] [UPDATE DB] C7CU-PGT977
|
||||
[12:54:19] [UPDATE DB] C7CU-PGT978
|
||||
[12:54:19] [UPDATE DB] HHJH-UFWL81
|
||||
[12:54:19] [UPDATE DB] 83
|
||||
[12:54:19] [UPDATE STATUS] RNS6-DB3N84 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE STATUS] C7CU-PGT987 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] ZMVC-KAFH88
|
||||
[12:54:19] [UPDATE STATUS] L5BR-E8QA89 (Disconnected -> Disconnected)
|
||||
[12:54:19] [UPDATE DB] XNEQ-GB6L90
|
||||
[2025-11-11 12:54:19] Update DB selesai. OK: 59, FAIL: 0
|
||||
[2025-11-11 12:54:19] Lama eksekusi: 18.11 detik
|
||||
|
||||
@@ -1 +1 @@
|
||||
[2025-11-10 17:40:02] Remote port 12911 berhasil ditutup.
|
||||
[2025-11-11 12:52:02] Tidak ada remote expired.
|
||||
|
||||
@@ -1 +1 @@
|
||||
[2025-11-09 23:50:02] 0 data telah dihapus. Data tersisa sejak 2025-10-01 00:00:00 sampai sekarang.
|
||||
[2025-11-10 23:50:02] 0 data telah dihapus. Data tersisa sejak 2025-10-01 00:00:00 sampai sekarang.
|
||||
|
||||
@@ -11,84 +11,195 @@ 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
|
||||
// );
|
||||
// }
|
||||
|
||||
try {
|
||||
// Ambil maksimum 5 data agar ringan
|
||||
$sql = "
|
||||
SELECT
|
||||
a.id,
|
||||
a.transaction_id,
|
||||
a.transaction_data,
|
||||
b.apikey_payment_gateway,
|
||||
b.url_payment_gateway
|
||||
FROM
|
||||
tagihan a
|
||||
LEFT JOIN
|
||||
data_server b ON a.id_data_server = b.id
|
||||
data_server b
|
||||
ON a.id_data_server = b.id
|
||||
WHERE
|
||||
a.status = 'lewat'
|
||||
a.status = 'lunas'
|
||||
AND a.transaction_id != ''
|
||||
AND a.transaction_status = 'ACTIVE'
|
||||
AND a.transaction_data != ''
|
||||
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
|
||||
AND YEAR(a.limit_pembayaran) = YEAR(NOW())
|
||||
AND MONTH(a.limit_pembayaran) = MONTH(NOW())
|
||||
ORDER BY a.id ASC
|
||||
LIMIT 15
|
||||
";
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (empty($data)) {
|
||||
exit; // tidak ada data, langsung keluar biar hemat resource
|
||||
}
|
||||
if (empty($data)) exit;
|
||||
|
||||
$logFile = "/www/wwwroot/bilspro/load/cronjob/flip_auto_inactive.log";
|
||||
if (!file_exists(dirname($logFile))) {
|
||||
mkdir(dirname($logFile), 0777, true);
|
||||
}
|
||||
if (!file_exists(dirname($logFile))) mkdir(dirname($logFile), 0777, true);
|
||||
|
||||
$results = [];
|
||||
$no = 1;
|
||||
|
||||
foreach ($data as $row) {
|
||||
try {
|
||||
$flip = new FlipPaymentGateway($row['apikey_payment_gateway'], $row['url_payment_gateway']);
|
||||
$response = $flip->getBillStatus($row['transaction_id']);
|
||||
$data2 = json_decode($row['transaction_data'], true);
|
||||
|
||||
if (!is_array($response) || empty($response['link_id'])) {
|
||||
if (json_last_error() !== JSON_ERROR_NONE || empty($data2)) {
|
||||
$results[] = [
|
||||
'nomor' => $no++,
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid or missing response from Flip API'
|
||||
'title' => '(invalid JSON)',
|
||||
'error' => 'transaction_data tidak valid'
|
||||
];
|
||||
continue;
|
||||
}
|
||||
|
||||
$delete = $flip->editBill(
|
||||
$response['link_id'],
|
||||
'INACTIVE',
|
||||
$response['title'] ?? '',
|
||||
$response['amount'] ?? 0
|
||||
);
|
||||
if (empty($data2['link_id'])) {
|
||||
$results[] = [
|
||||
'nomor' => $no++,
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'status' => 'error',
|
||||
'message' => 'link_id kosong di transaction_data'
|
||||
];
|
||||
continue;
|
||||
}
|
||||
|
||||
$results[] = [
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'flip_response' => $delete
|
||||
];
|
||||
$flip = new FlipPaymentGateway($row['apikey_payment_gateway'], $row['url_payment_gateway']);
|
||||
$delete = $flip->editBill(
|
||||
$data2['link_id'],
|
||||
'INACTIVE',
|
||||
$data2['title'] ?? '',
|
||||
$data2['amount'] ?? 0
|
||||
);
|
||||
|
||||
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
|
||||
$results[] = [
|
||||
'nomor' => $no++,
|
||||
'id' => $row['id'],
|
||||
'transaction_id' => $row['transaction_id'],
|
||||
'title' => is_array($delete) ? ($delete['title'] ?? '(tidak ada title)') : '(tidak ada title)'
|
||||
];
|
||||
|
||||
sleep(1);
|
||||
} catch (Exception $e) {
|
||||
$results[] = [
|
||||
@@ -100,18 +211,16 @@ try {
|
||||
}
|
||||
}
|
||||
|
||||
// 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,
|
||||
"[" . date('Y-m-d H:i:s') . "] " . json_encode($results, JSON_PRETTY_PRINT | 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-11-10 17:30:07 ✅ Summary updated, rows affected: 1784
|
||||
2025-11-11 12:45:05 ✅ Summary updated, rows affected: 1782
|
||||
|
||||
Reference in New Issue
Block a user