<?php
declare(strict_types=1);

require_once __DIR__ . "/payment/lib/tripay.php";
require_once __DIR__ . "/order-update.php";


$config =
require __DIR__ . "/payment/config.php";


$orderId =
trim($_GET['order'] ?? '');


if(!$orderId){

    die("Order tidak ditemukan.");

}



$orderFile =
"/etc/tcc-mikhmon/orders/orders.csv";


$fp=fopen($orderFile,"r");

$header=fgetcsv($fp);

$order=null;


while(($row=fgetcsv($fp))!==false){

    $data=array_combine(
        $header,
        $row
    );


    if(
        $data['order_id']
        === $orderId
    ){

        $order=$data;
        break;

    }

}


fclose($fp);



if(!$order){

    die("Order tidak ditemukan.");

}



if(
    !empty($order['checkout_url'])
){

    header(
        "Location: "
        .$order['checkout_url']
    );

    exit;

}




$payload=[


    "merchant_ref" =>
    $order['order_id'],


    "amount" =>
    (int)$order['price'],


    "customer_name" =>
    strtoupper($order['client']),


    "customer_email" =>
    strtolower($order['client'])
    ."@tccnetwork.my.id",


    "customer_phone" =>
    "081000000000",


    "order_items" => [

        [

            "name" =>
            $order['package'],

            "price" =>
            (int)$order['price'],

            "quantity" => 1

        ]

    ],


    "callback_url" =>
    $config['callback_url']

];



try {


    $result =
    tripayRequest(
        "transaction/create",
        $payload,
        $config
    );


} catch(Throwable $e){

    die(
        "Tripay Error: "
        .$e->getMessage()
    );

}



if(
    empty($result['success'])
){

    echo "<pre>";
    print_r($result);
    echo "</pre>";

    exit;

}



$reference =
$result['data']['reference'] ?? '';


$checkout =
$result['data']['checkout_url'] ?? '';



if(
    !$reference ||
    !$checkout
){

    die("Response Tripay tidak lengkap.");

}



updateOrderTripay(
    $orderId,
    $reference,
    $checkout
);



header(
    "Location: ".$checkout
);

exit;
