Advertisement
aliffauzi34

NjirLahh

Mar 25th, 2020
687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.73 KB | None | 0 0
  1. /**
  2.  * @release 2020
  3.  *
  4.  * @author eco.nxn
  5.  */
  6. date_default_timezone_set("Asia/Jakarta");
  7. error_reporting(0);
  8. class curl {
  9.         private $ch, $result, $error;
  10.         /**
  11.          * HTTP request
  12.          *
  13.          * @param string $method HTTP request method
  14.          * @param string $url API request URL
  15.          * @param array $param API request data
  16.      * @param array $header API request header
  17.          */
  18.         public function request ($method, $url, $param, $header) {
  19.                 curl:
  20.         $this->ch = curl_init();
  21.         switch ($method){
  22.             case "GET":
  23.                 curl_setopt($this->ch, CURLOPT_POST, false);
  24.                 break;
  25.             case "POST":              
  26.                 curl_setopt($this->ch, CURLOPT_POST, true);
  27.                 curl_setopt($this->ch, CURLOPT_POSTFIELDS, $param);
  28.                 break;
  29.         }
  30.         curl_setopt($this->ch, CURLOPT_URL, 'https://api-servicemotorkuexpress.astra.co.id'.$url);
  31.         curl_setopt($this->ch, CURLOPT_USERAGENT, 'okhttp/3.12.1');
  32.         curl_setopt($this->ch, CURLOPT_HEADER, false);
  33.         curl_setopt($this->ch, CURLOPT_HTTPHEADER, $header);
  34.         curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
  35.         curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
  36.         curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, 10);
  37.         curl_setopt($this->ch, CURLOPT_TIMEOUT, 120);
  38.  
  39.         $this->result = curl_exec($this->ch);
  40.         $this->error = curl_error($this->ch);
  41.         if(!$this->result){
  42.             if($this->error) {
  43.                 echo "[!] cURL Error: ".$this->error.", Maybe the internal server error or DOWN!n";
  44.                 sleep(1);
  45.                 goto curl;
  46.             } else {
  47.                 echo "[!] cURL Error: No Resultnn";
  48.                 die();
  49.             }
  50.         }
  51.         curl_close($this->ch);
  52.         return $this->result;
  53.     }
  54.    
  55. }
  56.  
  57. class motorku {
  58.  
  59.     function random_numb($length)
  60.     {
  61.         $data = '0123456789';
  62.         $string = '';
  63.         for($i = 0; $i < $length; $i++) {
  64.             $pos = rand(0, strlen($data)-1);
  65.             $string .= $data{$pos};
  66.         }
  67.         return $string;
  68.     }
  69.  
  70.     function random_token($length)
  71.     {
  72.         $data = 'qwertyuioplkjhgfdsazxcvbnmMNBVCXZASDFGHJKLPOIUYTREWQ';
  73.         $string = '';
  74.         for($i = 0; $i < $length; $i++) {
  75.             $pos = rand(0, strlen($data)-1);
  76.             $string .= $data{$pos};
  77.         }
  78.         return $string;
  79.     }
  80.  
  81.     /**
  82.      * Get random name
  83.      */
  84.     function randomuser() {
  85.         randomuser:
  86.         $randomuser = file_get_contents('https://econxn.id/api/v1/randomUser/?quantity=50');
  87.         if($randomuser) {
  88.             $json = json_decode($randomuser);
  89.             if($json->status->code == 200) {
  90.                 return $json->result;
  91.             } else {
  92.                 echo "[!] ".date('H:i:s')." | GAGAL Menggenerate Nama!n";
  93.                 sleep(2);
  94.                 goto randomuser;
  95.             }        
  96.         } else {        
  97.             sleep(2);
  98.             goto randomuser;
  99.         }
  100.     }
  101.  
  102.     /**
  103.      * Registrasi akun
  104.      */
  105.     function regis($name, $email, $reff) {
  106.         $curl = new curl();
  107.  
  108.         $provider = ['0812', '0813', '0821', '0857', '0856', '0838', '0877'];
  109.         $phone = $provider[rand(0,6)].$this->random_numb(rand(8,9));
  110.  
  111.         $method   = 'POST';
  112.         $header   =  [
  113.             'authorization: Bearer null',
  114.             'mokita-enc: eyJlbmMtdmVyc2lvbiI6IjEuMS5xMiIsImNpcGhlcnRleHQiOiJnaGJSdVRJeGRndDg0UHVEZTVaM0F3PT0iLCJpdiI6IjE1ODQ5NTQyOTAxNTg0OTU0MjkwMTU4NDk1NDI5MDE1IiwidGltZXN0YW1wIjoxNTg0OTc5NDkwMjcwLCJyZXF1ZXN0VGltZXN0YW1wIjoxNTg0OTc5NDkwLCJ0aW1lc3RhbXBVdGMiOjE1ODQ5NTQyOTAyNzAsInJlcXVlc3RUaW1lc3RhbXBVdGMiOjE1ODQ5NTQyOTAsInNhbHQiOiJjMDIxN2NjZWFkYjE0MzQwNWZiNzBjZmU1ZjhjMjRkYzhmZDAyMDkyNGI5YjU0ZTQ1ODJhZjkxNjhmMTkzZDgyYWE4Y2U3OTk0NTYyYmFhZjY0NzI4NGNiNTkyNjUxNDM2MTY0MzdkOGM4OWY5OWQ3YzBiZWE4NzhjMWQzMWE0NjRmYjI0Y2JhYjkyZGZkZDk2NmVlMmYxYzU4NTY1ZWJjYmFlZTdmYjAzMGY3OTI1OGM1N2ZiZjM1NGEyNjI3NWE2ZmE3MTRjOWM1YWRlYmFjYzJlYjViNjRjZmVlODY4MTM4OTI0NzdkYTMxNjMxODM0NjA2MDVhYWEyNzI1NmUzYzc0YTFjZTE1YzQ3NDdlNDU5NTYzMDNjOWZkNTk0NzZhYzk4N2IyMzQ1ZTRkZDVhOTAyNjA5OGRhZWExNWU2MmIwZjY4Y2ZiYmI4Y2YxMzY1MDYyNmI4NWFjMDJjZDI5NGUyMjc1YTg0NWFhNzE2MzY1YjAxODJjYjkwOWMxZDEyZmU2ZDIyZmMzZjIyMGY0OTY4ZDU1NmY2MzRiOTNlMmFiMDk2ZTVhMzQyMGIwYTY1OTdhMGU1NjlkNjg4ZWY1OTJjMjIwOTYyYmJiNDM2M2M1ZTM5OWE1NmFhMTg4MWI1NDFiNjQ0NmEzZjg2YTA0Yzc5MGU0ZTg5MzNmYWU3NyIsIml0ZXJhdGlvbnMiOjk5OX0=',
  115.             'Content-Type: application/json'
  116.         ];
  117.         $endpoint = '/api/register/q2';
  118.        
  119.         $param = '{"name":"'.$name.'","phone_number":"'.$phone.'","email":"'.$email.'","latitude":null,"longitude":null,"referral_code":"'.strtoupper($reff).'"}';
  120.  
  121.         $regis = $curl->request ($method, $endpoint, $param, $header);
  122.  
  123.         $json = json_decode($regis);
  124.  
  125.         if($json->status == 1) {
  126.             $token = $json->token;
  127.         } else {
  128.             $token = NULL;
  129.         }
  130.        
  131.         return $this->get_points($token);
  132.     }
  133.  
  134.     /**
  135.      * Login akun
  136.      */
  137.     function login($phone) {
  138.         $curl = new curl();
  139.  
  140.         $method   = 'POST';
  141.         $header   =  [
  142.             'authorization: Bearer null',
  143.             'Content-Type: application/json'
  144.         ];
  145.         $endpoint = '/api/login';
  146.  
  147.         $param = '{"msisdn":"'.$phone.'"}';
  148.  
  149.         $login = $curl->request ($method, $endpoint, $param, $header);
  150.    
  151.         $json = json_decode($login);
  152.  
  153.         if($json->status == 1) {
  154.             return TRUE;
  155.         } else {
  156.             return FALSE;
  157.         }
  158.     }
  159.  
  160.     /**
  161.      * Verify akun
  162.      */
  163.     function verify_login($phone, $otp) {
  164.         $curl = new curl();
  165.  
  166.         $method   = 'POST';
  167.         $header   =  [
  168.             'authorization: Bearer null',
  169.             'Content-Type: application/json'
  170.         ];
  171.         $endpoint = '/api/otp/consume/login';
  172.  
  173.         $param = '{"phone_number":"'.$phone.'","otp":"'.$otp.'","key":"'.$otp.'","ahass_id":"'.$otp.'"}';
  174.  
  175.         $verify = $curl->request ($method, $endpoint, $param, $header);
  176.    
  177.         $json = json_decode($verify);
  178.  
  179.         if($json->status == 1) {
  180.             return $json->token;
  181.         } else {
  182.             return FALSE;
  183.         }
  184.     }
  185.  
  186.     /**
  187.      * Progress logging-in
  188.      */
  189.     function loginProgress() {
  190.         login:
  191.         echo "Masukkan No. HP :";
  192.         $phone = trim(fgets(STDIN));
  193.         $login = $this->login($phone);
  194.         if($login==true) {
  195.  
  196.             verify:
  197.             echo "Masukkan OTP    :";
  198.             $otp = trim(fgets(STDIN));
  199.             $verify = $this->verify_login($phone, $otp);
  200.             if($verify==false) {
  201.                 echo "[!] Kode OTP SALAH!n";
  202.                 goto verify;
  203.             } else {
  204.                 $owner_token = $verify;
  205.                 unlink("src/token.txt");
  206.                 $fh = fopen("src/token.txt", "a");
  207.                 fwrite($fh, $owner_token);
  208.                 fclose($fh);
  209.                 return $owner_token;
  210.             }
  211.  
  212.         } else {
  213.             echo "[!] Login GAGAL! Enter R (Coba lagi!), Z (Lanjut tanpa Auto Redeem).n";
  214.             echo "Choice :";
  215.             $choice = trim(fgets(STDIN));
  216.             if(strtolower($choice) == 'r') {
  217.                 echo "n";
  218.                 goto login;
  219.             } elseif(strtolower($choice) != 'z') {
  220.                 echo "n";
  221.                 die();
  222.             }
  223.             return FALSE;
  224.         }
  225.     }
  226.  
  227.     /**
  228.      * Get Points
  229.      */
  230.     function get_points($token) {
  231.         $curl = new curl();
  232.  
  233.         $method   = 'POST';
  234.         $header   =  [
  235.             'authorization: Bearer '.$token,
  236.             'Content-Type: application/json'
  237.         ];
  238.         $endpoint = '/api/profile/firebaseToken';
  239.  
  240.         $param = '{"token":"'.$this->random_token(11).':APA91bGoqkIHu5r36F9gAJblzHCV1XIwxh5MhvQXTD9y977rteh_q91GIX44zgHrx7um3SXXijcRU5aaeSm_Hqxe96sjDTCjBQpq6DdyJ_PDt9e7Le7p9r17DdNZfc119BltLGnvdgb"}';
  241.  
  242.         $get_points = $curl->request ($method, $endpoint, $param, $header);
  243.    
  244.         $json = json_decode($get_points);
  245.  
  246.         if($json->status == 1) {
  247.             return TRUE;
  248.         } else {
  249.             return FALSE;
  250.         }
  251.     }
  252.  
  253.     /**
  254.      * Get info profile
  255.      */
  256.     function profile($owner_token) {
  257.         $curl = new curl();
  258.  
  259.         $method   = 'GET';
  260.         $header   =  [
  261.             'authorization: Bearer '.$owner_token
  262.         ];
  263.         $endpoint = '/api/profile';
  264.  
  265.         $profile = $curl->request ($method, $endpoint, $param=NULL, $header);
  266.    
  267.         $json = json_decode($profile);
  268.  
  269.         if($json->status == 1) {
  270.             return $json;
  271.         } else {
  272.             return FALSE;
  273.         }
  274.     }
  275.    
  276.     /**
  277.      * Redeem Points
  278.      */
  279.     function voucher($categoryId, $token) {
  280.         $curl = new curl();
  281.  
  282.         $method   = 'GET';
  283.         $header   =  [
  284.             'authorization: Bearer '.$token
  285.         ];
  286.         $endpoint = '/api/deal/category/'.$categoryId;
  287.  
  288.         $voucher = $curl->request ($method, $endpoint, $param=NULL, $header);
  289.    
  290.         $json = json_decode($voucher);
  291.  
  292.         if($json->status == 1) {
  293.             echo "nn[i] Daftar Voucher Yang Akan Di Redeem Otomatis:n";
  294.            
  295.             $total_pages = $json->meta->pagination->total_pages;
  296.             $no=1;
  297.             foreach ($json->data as $data) {    
  298.                 echo "[".$no++."] ".$data->id." | ".$data->name."n";
  299.             }      
  300.             echo "n";
  301.             return $json->data;
  302.  
  303.         } else {
  304.             return FALSE;
  305.         }
  306.     }
  307.  
  308.     /**
  309.      * Redeem Points
  310.      */
  311.     function redeem($token, $item_id) {
  312.         $curl = new curl();
  313.  
  314.         $method   = 'POST';
  315.         $header   =  [
  316.             'authorization: Bearer '.$token,
  317.             'Content-Type: application/json'
  318.         ];
  319.         $endpoint = '/api/redeem/point';
  320.  
  321.         $param = '{"item_id":'.$item_id.'}';
  322.  
  323.         $redeem = $curl->request ($method, $endpoint, $param, $header);
  324.    
  325.         $json = json_decode($redeem);
  326.  
  327.         if($json->status == 1) {
  328.             return TRUE;
  329.         } else {
  330.             return FALSE;
  331.         }
  332.     }
  333.  
  334. }
  335.  
  336. /**
  337.  * Running
  338.  */
  339.  
  340. $motorku = new motorku();
  341.  
  342. echo "by @eco.nxnnDisclaimer: Segala bentuk resiko atas tindakan ini saya pribadi tidak bertanggung jawab, gunakanlah senormal-nya!nn";
  343. echo "Kode Referral :";
  344. $reff = trim(fgets(STDIN));
  345. coin:
  346. echo "Jumlah Koin   :";
  347. $coin = trim(fgets(STDIN));
  348. if(!is_numeric($coin)) {
  349.     goto coin;
  350. } elseif ($coin < 15){
  351.     echo "[i] Masukkan jumlah koin yang diinginkann";
  352.     goto coin;
  353. }
  354. echo "nn";
  355.  
  356. echo "Auto Redeem [Y/N] :";
  357. $auto_redeem = trim(fgets(STDIN));
  358. if (strtolower($auto_redeem)=='y') {
  359.  
  360.     check_token:
  361.     $file  = "src/token.txt";
  362.     $list  = explode("n",str_replace("r","",file_get_contents($file)));
  363.  
  364.     if(!empty($list[0])) {
  365.         $_token = $list[0];
  366.  
  367.         $status_login = $motorku->profile($_token);
  368.         if($status_login == false) {
  369.             echo "[!] Invalid Token!, Sesi telah habis.n";
  370.             $loginProgress = $motorku->loginProgress();
  371.             if($loginProgress == FALSE) {
  372.                 $validToken = FALSE;
  373.             } else {
  374.                 $validToken = TRUE;
  375.                 $owner_token = $loginProgress;
  376.             }
  377.         } else {
  378.             $validToken = TRUE;
  379.             $owner_token = $_token;
  380.         }
  381.     } else {
  382.         $loginProgress = $motorku->loginProgress();
  383.         if($loginProgress == FALSE) {
  384.             $validToken = FALSE;
  385.         } else {
  386.             $validToken = TRUE;
  387.             $owner_token = $loginProgress;
  388.         }
  389.     }
  390.  
  391. }
  392.  
  393. if($validToken == TRUE) {
  394.     /**
  395.      * Profile
  396.      */
  397.     $get_info = $motorku->profile($owner_token);
  398.     $owner_nama  = $get_info->data->name;
  399.     $owner_phone = $get_info->data->phone_number;
  400.     $owner_point = $get_info->data->point;
  401.  
  402.     echo "[i] Anda sedang login sebagai ".$owner_nama." [".$owner_phone."], Total Poin: ".$owner_point."nn";
  403.  
  404.     echo "Pilih Nomor Kategori Voucher Yang Ingin Di Redeem!n";
  405.     echo "1. Makanann";
  406.     echo "2. Belanjan";
  407.     pilih:
  408.     echo "Pilih :";
  409.     $categori = trim(fgets(STDIN));
  410.     if (!is_numeric($categori)) {
  411.         goto pilih;
  412.     } elseif($categori > 2) {
  413.         goto pilih;
  414.     }
  415.  
  416.     switch($categori) {
  417.         case "1":
  418.             voucher1:
  419.             $voucher = $motorku->voucher(2, $token);
  420.             if($voucher==false) {
  421.                 goto voucher1;
  422.             }
  423.         break;
  424.         case "2":
  425.             voucher2:
  426.             $voucher = $motorku->voucher(4, $token);
  427.             if($voucher==false) {
  428.                 goto voucher2;
  429.             }
  430.         break;
  431.     }
  432.  
  433.     if($owner_point >= 5000) {
  434.         echo "[i] POINT LO SUDAH BANYAK, JANGAN MARUK! LANJUT LANGSUNG REDEEM AJA.n";
  435.  
  436.         foreach ($voucher as $dataVoucher) {
  437.             $item_id    = $dataVoucher->id;
  438.             $item_name  = $dataVoucher->name;
  439.             $item_point = $dataVoucher->point;
  440.  
  441.             $redeem = $motorku->redeem($token, $item_id);
  442.             if($redeem==true) {
  443.                 echo "[i] ".date('H:i:s')." | ".$item_name." berhasil di Redeemn";
  444.             } else {
  445.                 echo "[!] ".date('H:i:s')." | GAGAL Redeem ".$item_name."n";
  446.             }
  447.         }
  448.     }
  449. }
  450.  
  451.  
  452. $no=1;
  453. $loop = $coin/15;
  454. while(TRUE) {
  455.  
  456.     $randomuser = $motorku->randomuser();
  457.     foreach ($randomuser as $value) {
  458.         $firstname = $value->Firstname;
  459.         $lastname  = $value->Lastname;
  460.         $email     = $value->Email;
  461.  
  462.  
  463.         for ($i=0; $i < 2; $i++) {
  464.             if($i==0) {
  465.                 $name = $firstname;
  466.             } else {
  467.                 $name = $lastname;
  468.             }
  469.  
  470.             $run = $motorku->regis($name, $email, $reff);
  471.             if($run==true) {
  472.                 echo "[".$no++."] ".date('H:i:s')." | Registrasi Berhasil.";
  473.  
  474.                 if($validToken == TRUE) {
  475.                     $profile = $motorku->profile($owner_token);              
  476.                     $totalPoin = $profile->data->point;                  
  477.  
  478.                     echo "Total Poin Sekarang ".$totalPoin."n";
  479.  
  480.                  
  481.                     foreach ($voucher as $dataVoucher) {
  482.                         $item_id    = $dataVoucher->id;
  483.                         $item_name  = $dataVoucher->name;
  484.                         $item_point = $dataVoucher->point;
  485.  
  486.                         $get_info_point = $motorku->profile($owner_token);
  487.                         $owner_point = $get_info->data->point;
  488.  
  489.                         if($owner_point >= $item_point) {
  490.                             $redeem = $motorku->redeem($token, $item_id);
  491.                             if($redeem==true) {
  492.                                 echo "[i] ".date('H:i:s')." | ".$item_name." berhasil di Redeemn";
  493.                             } else {
  494.                                 echo "[!] ".date('H:i:s')." | GAGAL Redeem ".$item_name."n";
  495.                             }
  496.                         }          
  497.                        
  498.                     }        
  499.                    
  500.                 }
  501.  
  502.                 if($no > $loop) {
  503.                     echo "nnDONE!nn";
  504.                     die();
  505.                 }            
  506.             } else {
  507.                 echo "[!] ".date('H:i:s')." | Registrasi GAGALn";
  508.             }
  509.             sleep(1);
  510.         }  
  511.        
  512.         if($validToken == TRUE) {
  513.             if($owner_point >= 5000) {
  514.                 echo "[i] POINT LO SUDAH BANYAK, JANGAN MARUK! LANJUT LANGSUNG REDEEM AJA.n";
  515.             }
  516.         } else {
  517.             echo "[i] POINT LO SUDAH BANYAK, JANGAN MARUK!nn";
  518.             die();
  519.         }
  520.        
  521.        
  522.     }  
  523. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement