<?php  
//auto redeem mobapay with toket

//GANTI DLU SBLM RUNN COK
$tokenmobapaymu = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTY2NjQ5MzcsIkV4dCI6IntcImFjY19pZFwiOjg2NTkxNSxcIm10cHBfYWNjX2lkXCI6MjYzMDE1OTYxfSJ9.qUx47Vql-QcdHHVUXM9Vv-PTcnKw0dfaYPExKeYks3s"; //Inspect elemen aja pas sesudah login mobapay cari X-Token copy kesini
$useridML = "123456789"; //ganti id ml mu
$serveridML = "1234"; //ganti server id ml mu

function GetListVoucher($tokenmobapaymu){
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.mobapay.com/account/gift_code_list?country=ID&language=en&_t=1716657672070');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');


$headers = array();
$headers[] = 'Accept: application/json, text/plain, */*';
$headers[] = 'Accept-Language: en-US,en;q=0.9';
$headers[] = 'Content-Type: application/json;charset=UTF-8';
$headers[] = 'Did: null';
$headers[] = 'Origin: https://mobapay.com';
$headers[] = 'Priority: u=1, i';
$headers[] = 'Referer: https://mobapay.com/';
$headers[] = 'Sec-Fetch-Dest: empty';
$headers[] = 'Sec-Fetch-Mode: cors';
$headers[] = 'Sec-Fetch-Site: same-site';
$headers[] = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/125.0.0.0';
$headers[] = 'X-Token: '.$tokenmobapaymu.'';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

return $result;
}

function RedeemVOC($tokenmobapaymu,$useridML,$serveridML,$idvocnya){
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.mobapay.com/account/gift_code_exchange');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"user_id\":$useridML,\"server_id\":$serveridML,\"id\":\"$idvocnya\",\"country\":\"ID\"}");

$headers = array();
$headers[] = 'Accept: application/json, text/plain, */*';
$headers[] = 'Accept-Language: en-US,en;q=0.9';
$headers[] = 'Content-Type: application/json;charset=UTF-8';
$headers[] = 'Did: null';
$headers[] = 'Origin: https://mobapay.com';
$headers[] = 'Priority: u=1, i';
$headers[] = 'Referer: https://mobapay.com/';
$headers[] = 'Sec-Fetch-Dest: empty';
$headers[] = 'Sec-Fetch-Mode: cors';
$headers[] = 'Sec-Fetch-Site: same-site';
$headers[] = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/125.0.0.0';
$headers[] = 'X-Token: '.$tokenmobapaymu.'';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

return $result;
}

function getStr($string, $start, $end)
{
    $string = " " . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) {
        return "";
    }
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}


$m = GetListVoucher($tokenmobapaymu);

$data = json_decode($m, true);
//var_dump($data);
if ($data !== null && isset($data['data']['unused'])) {
    $unusedItems = $data['data']['unused'];
    foreach ($unusedItems as $item) {
        $itemid = $item['id'];
        $title = $item['title'];
        $redeem = RedeemVOC($tokenmobapaymu,$useridML,$serveridML,$itemid);
        $hasilredeem = getStr($redeem, '"message":"', '"');
        echo "Voucher ID: $itemid [ $title] - Redeem Status: $hasilredeem".PHP_EOL;
        sleep(2);
    }
    if ($data !== null && isset($data['data']['used'])) {
        $usedItems = $data['data']['used'];
        foreach ($usedItems as $item) {
            $itemid = $item['id'];
            $title = $item['title'];
            $redeem = RedeemVOC($tokenmobapaymu,$useridML,$serveridML,$itemid);
            $hasilredeem = getStr($redeem, '"message":"', '"');
            echo "Voucher ID: $itemid [ $title] - Redeem Status: $hasilredeem".PHP_EOL;
            sleep(2);
        }
    }
} else {
    echo "Error Toket Mu Salah/Expired.";
} 

?>