<?php
include_once('./_common.php');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    // Get the raw POST data
    $postData = file_get_contents("php://input");

    // Decode the JSON data
    $jsonData = json_decode($postData, true);

    // Check if the JSON data is valid
    if (json_last_error() === JSON_ERROR_NONE) {
        foreach ($jsonData as $message) {
            // Decode the inner JSON string
            $messageData = json_decode($message, true);

            // Extract the 'body' field from each message
            $bodyData = isset($messageData['body']) ? $messageData['body'] : 'No body field found';

            if (!empty($bodyData) && $bodyData !== 'No body field found') {
                $filePath = 'data/IncomeMutongjang_SMS.json';

                // 파일이 존재하지 않으면 생성
                if (!file_exists($filePath)) {
                    $file = fopen($filePath, 'w');
                    fclose($file);
                }

                // 파일에 데이터 추가
                $file = fopen($filePath, 'w');
                fwrite($file, $bodyData . PHP_EOL);
                fclose($file);

                // 1. 은행명 추출
                preg_match('/\[(.*?)\]/', $bodyData, $bankNameMatches);
                $bankName = $bankNameMatches[1] ?? ''; // 은행명 (국민은행)

                // 2 & 3. 계좌번호의 처음 3자리와 마지막 3자리 추출
                preg_match('/(\d{3})\*\*\*(\d{3})/', $bodyData, $accountMatches);
                $firstThreeDigits = $accountMatches[1] ?? ''; // 계좌번호 처음 3자리 (239)
                $lastThreeDigits = $accountMatches[2] ?? ''; // 계좌번호 마지막 3자리 (372)

                // 4. 입금자명 추출
                preg_match('/\d{3}\*\*\*\d{3}\s+(.*?)\s+입금/', $bodyData, $payerMatches);
                $payerName = $payerMatches[1] ?? ''; // 입금자명 (컴뷰어RJSW)

                // 5. 입금액 추출
                preg_match('/입금([\d,]+)원/', $bodyData, $amountMatches);
                $amount = str_replace(',', '', $amountMatches[1] ?? ''); // 입금액 (32000)

                // 결과 출력 (디버깅용)
                // echo "은행명: $bankName\n";
                // echo "계좌번호 처음 3자리: $firstThreeDigits\n";
                // echo "계좌번호 마지막 3자리: $lastThreeDigits\n";
                // echo "입금자명: $payerName\n";
                // echo "입금액: $amount\n";

                // 웹서버 DB에서 해당 주문건 추출하여 처리함
                $sql = " select * from g5_shoppoint_order where
                    od_fx_amount = '{$amount}' AND
                    od_deposit_name = '{$payerName}' AND
                    od_bank_account LIKE '%$bankName%$firstThreeDigits%$lastThreeDigits%' ";

                $od  = sql_fetch($sql);


                $response = array(
                    "result" => "success",
                    "orderNumber" => "123456",
                    "finalStatus" => "입금|{$bodyData}|{$bankName}|{$firstThreeDigits}|{$lastThreeDigits}|{$amount}|{$payerName}|{$od['od_id']}",
                    "processTime" => date("Y-m-d H:i:s")
                );



                echo json_encode($response);
            } else {
                echo json_encode(['result' => 'fail', 'message' => 'No data received']);
            }
        }
    } else {
        echo json_encode(['result' => 'fail', 'message' => 'Invalid JSON data received']);
    }
} else {
    echo json_encode(['result' => 'fail', 'message' => 'Invalid request method']);
}
?>