Add remaining project files (exclude ignored folders)

This commit is contained in:
WD - Dev
2025-07-05 15:11:40 +07:00
parent a96eb2b958
commit b440b80882
4697 changed files with 1365702 additions and 0 deletions
+123
View File
@@ -0,0 +1,123 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include "/www/wwwroot/bilspro/config/connect.php";
include "/www/wwwroot/bilspro/payment/paydisini/api_control.php";
header('Content-Type: application/json');
function generateOrderId($pdo) {
do {
$order_id = sprintf('%013d', mt_rand(0, 9999999999999));
$stmt = $pdo->prepare("SELECT COUNT(*) FROM apk_payment WHERE order_id = :order_id");
$stmt->bindParam(':order_id', $order_id);
$stmt->execute();
$exists = $stmt->fetchColumn();
} while ($exists > 0);
return $order_id;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'message' => 'Metode tidak diperbolehkan']);
exit;
}
$ids = $_POST['ids'] ?? '';
$idm = $_POST['idm'] ?? '';
$idv = $_POST['idv'] ?? '';
$wa = $_POST['wa'] ?? '';
if (!preg_match('/^[0-9]{10,15}$/', $wa)) {
echo json_encode(['success' => false, 'message' => 'Nomor WhatsApp tidak valid']);
exit;
}
if (empty($ids) || empty($idm) || empty($idv)) {
echo json_encode(['success' => false, 'message' => 'Data tidak lengkap']);
exit;
}
$stmt = $pdo->prepare("SELECT * FROM profile_paket WHERE id = :idv");
$stmt->execute([':idv' => $idv]);
$data1 = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$data1) {
echo json_encode(['success' => false, 'message' => 'Data paket tidak ditemukan']);
exit;
}
$harga = $data1['harga_paket'];
$kodeprofile = $data1['nama_profile'];
$durasi = $data1['durasi'];
$karakter = "QWERTYUIOPASDFGHJKLZXCV12345098760987612345BNMQWERTYUIOPASGHJKLZXCVBNM";
$kodevoucher = $durasi . substr(str_shuffle($karakter), 0, 7) . 'VPG';
$create_time = date('Y-m-d H:i:s');
$stmt = $pdo->prepare("INSERT INTO ganerate_voucher
(id_data_server, id_agen_voucher, id_setting_mikrotik, id_profile_paket, voucher, harga, create_time, jenis, nomor_whatsapp)
VALUES (:ids, NULL, :idm, :idv, :voucher, :harga, :create_time, 'api-pw', :nomor_whatsapp)");
$stmt->execute([
':ids' => $ids,
':idm' => $idm,
':idv' => $idv,
':voucher' => $kodevoucher,
':harga' => $harga,
':create_time' => $create_time,
':nomor_whatsapp' => $wa
]);
$last_id = $pdo->lastInsertId();
$order_id = generateOrderId($pdo);
$keterangan = "Pembelian voucher " . $kodevoucher;
$waktu_transaksi = date("Y-m-d H:i:s");
$stmt = $pdo->prepare("INSERT INTO apk_payment
(id_data_server, order_id, keterangan, waktu_transaksi, nominal, id_generate, status, jenis)
VALUES
(:ids, :order_id, :keterangan, :waktu_transaksi, :nominal, :id_generate, 'BELUM DIBAYAR', 'Hotspot')");
$stmt->execute([
':ids' => $ids,
':order_id' => $order_id,
':keterangan' => $keterangan,
':waktu_transaksi' => $waktu_transaksi,
':nominal' => $harga,
':id_generate' => $last_id
]);
$trxData = [
'unique_code' => $order_id,
'service' => 'qris',
'amount' => $harga,
'note' => $keterangan,
'valid_time' => 300
];
$response = CreateTransaction($trxData);
$trxResult = json_decode($response);
if ($trxResult && $trxResult->success === true && isset($trxResult->data->qrcode_url)) {
$qrImage = $trxResult->data->qrcode_url;
$expired = $trxResult->data->expired;
$stmt = $pdo->prepare("UPDATE apk_payment SET data_get = :data_get, status = 'PENDING' WHERE order_id = :order_id");
$stmt->execute([
':data_get' => $response,
':order_id' => $order_id
]);
echo json_encode([
'success' => true,
'voucher' => $kodevoucher,
'exppay' => $expired,
'order_id' => $order_id,
'qr' => $qrImage
]);
exit;
} else {
echo json_encode(['success' => false, 'message' => 'Gagal membuat transaksi QR']);
exit;
}