<?php
// Izinkan akses dari domain manapun (CORS) - Sesuaikan jika perlu
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

// Baca input JSON dari frontend
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE);

// Pastikan data nominal dikirim
if (!isset($input['nominal'])) {
    echo json_encode(['status' => 'error', 'message' => 'Nominal tidak ditemukan dalam request']);
    exit;
}

$nominal_dicari = (int) $input['nominal'];
$docId = isset($input['docId']) ? $input['docId'] : '';

// -----------------------------------------------------
// KONFIGURASI QIOSPAY ANDA
// -----------------------------------------------------
$merchant_code = "QP036963";
$api_key       = "812feff6d5e883a1b0bb860bb2af215b5cbde41d937ba0e0814edb88334dd5df";
// -----------------------------------------------------

// Setup URL API Qiospay
$endpoint = "https://qiospay.id/api/mutasi/qris/{$merchant_code}/{$api_key}";

// Inisialisasi cURL untuk menembak API Qiospay
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Matikan jika ada masalah SSL di hosting
$response_json = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
curl_close($ch);

// Cek apakah request cURL berhasil
if ($response_json === false || $http_code != 200) {
    echo json_encode([
        'status' => 'error', 
        'message' => 'Gagal menghubungi server Qiospay', 
        'debug' => $curl_error
    ]);
    exit;
}

// Decode response dari Qiospay
$qiospay_data = json_decode($response_json, true);

// Cek status response dari Qiospay
if (isset($qiospay_data['status']) && $qiospay_data['status'] === 'success' && isset($qiospay_data['data'])) {
    
    $mutasi_ditemukan = false;
    $detail_mutasi = null;

    // Looping data mutasi untuk mencari nominal yang pas
    foreach ($qiospay_data['data'] as $mutasi) {
        $amount_mutasi = (int) $mutasi['amount'];
        $tipe_mutasi = $mutasi['type']; // "CR" artinya uang masuk (Credit)

        // Jika nominalnya sama persis dan tipenya uang masuk
        if ($amount_mutasi === $nominal_dicari && $tipe_mutasi === 'CR') {
            $mutasi_ditemukan = true;
            $detail_mutasi = $mutasi;
            break; // Hentikan pencarian karena sudah ketemu
        }
    }

    if ($mutasi_ditemukan) {
        // Pembayaran valid dan ditemukan
        echo json_encode([
            'status' => 'success',
            'message' => 'Pembayaran berhasil diverifikasi',
            'data' => $detail_mutasi
        ]);
    } else {
        // Mutasi sukses ditarik, tapi nominal yang dicari belum ada
        echo json_encode([
            'status' => 'pending',
            'message' => 'Pembayaran belum masuk, silakan tunggu...'
        ]);
    }

} else {
    // Response dari Qiospay error (misal salah API Key atau data kosong)
    $error_msg = isset($qiospay_data['message']) ? $qiospay_data['message'] : 'Respon API tidak dikenali';
    echo json_encode([
        'status' => 'error',
        'message' => $error_msg
    ]);
}
?>