Kamis, 28 Mei 2015

PHP API KEY TIKET













Pada Postingan kali ini gue mao berbagi tentang bagaimana membangun Aplikasi Tiket Pesawat Berbasis web dengan PHP.

Well sebelum nya kita akan memakai API dari tiket.com, karena API tersebut bisa didapatkan secara gratis.
Untuk Mendapatkan nya silahkan register di sini .
Kamu akan mendapatkan key untuk generate token, dan token tersebut akan digunakan sebagai acces untuk mendapatkan data.

  1. http://api.master18.tiket.com/search/flight?d=CGK&a=DPS&date=2014-05-25&ret_date=2014-05-30&adult=1&child=0&infant=0&token=a8b88a0817e469e634ff9c6c019191ec90ef8077&v=3&output=json  

*keterangan : untuk output gue memakai json karena menurut gue json lebih ringan ketimbang xml.

setelah url diatas kita jalankan di browser kita akan mendapatkan response dari server berbentuk json

Output Json :


Oke setelah itu kita harus membuat trigger untuk request data dengan GET Method
buat form untuk input
simple nya seperti  ini :

  1. <form accept-charset="utf-8" action="flight.php" enctype="multipart/form-data" id="pulang-pergi" method="get">  
  2. <fieldset>  
  3. <label>Dari</label>  
  4.                   <select class="chzn-select pull-right" name="d">  
  5.       <option value="ADL">Adelaide - ADL</option><option value="ASP">Alice Springs - ASP</option><option value="AMQ">Ambon - AMQ</option><option value="BCD">Bacolod - BCD</option><option value="BJW">Bajawa - BJW</option><option value="BPN">BalikPapan - BPN</option><option value="BTJ">Banda Aceh - BTJ</option><option value="BDO">Bandung - BDO</option><option value="BLR">Bangalore - BLR</option><option value="BKK">Bangkok - BKK</option><option value="BDJ">Banjarmasin - BDJ</option><option value="DQJ">Banyuwangi - DQJ</option><option value="BTH">Batam - BTH</option><option value="BUW">Baubau - BUW</option><option value="BKS">Bengkulu - BKS</option><option value="BEJ">Berau - BEJ</option><option value="BIK">Biak - BIK</option><option value="BMU">Bima - BMU</option><option value="BNE">Brisbane - BNE</option><option value="WUB">Buli - WUB</option><option value="UOL">Buol - UOL</option><option value="CNS">Cairns - CNS</option><option value="CEB">Cebu - CEB</option><option value="MAA">Chennai - MAA</option><option value="CRK">Clark (Manila) - CRK</option><option value="CFS">Coffs Harbour - CFS</option><option value="CMB">Colombo - CMB</option><option value="DVO">Davao - DVO</option><option value="DPS">Denpasar, Bali - DPS</option><option value="DAC">Dhaka - DAC</option><option value="ENE">Ende - ENE</option><option value="FKQ">FakFak - FKQ</option><option value="OOL">Gold Coast - OOL</option><option value="GTO">Gorontalo - GTO</option><option value="GNS">GunungSitoli - GNS</option><option value="HAK">Haikou - HAK</option><option value="HAN">Hanoi - HAN</option><option value="HDY">Hat Yai - HDY</option><option value="SGN">Ho Chi Minh City - SGN</option><option value="HBA">Hobart - HBA</option><option value="HKG">Hong Kong - HKG</option><option value="HYD">Hyderabad - HYD</option><option value="ILO">Iloilo - ILO</option><option selected="" value="CGK">Jakarta - CGK</option><option value="DJB">Jambi - DJB</option><option value="DJJ">Jayapura - DJJ</option><option value="KNG">Kaimana - KNG</option><option value="KDI">Kendari - KDI</option><option value="COK">Kochi - COK</option><option value="KBU">Kotabaru - KBU</option><option value="KBV">Krabi - KBV</option><option value="KUL">Kuala Lumpur - KUL</option><option value="KOE">Kupang - KOE</option><option value="LBJ">LabuanBajo - LBJ</option><option value="LAH">Labuha - LAH</option><option value="TKG">Lampung - TKG</option><option value="LSW">Lhokseumawe - LSW</option><option value="LOP">Lombok, Mataram - LOP</option><option value="LUW">Luwuk - LUW</option><option value="MFM">Macau - MFM</option><option value="MKY">Mackay (Whitsundays) - MKY</option><option value="MLG">Malang - MLG</option><option value="MJU">Mamuju - MJU</option><option value="MDC">Manado - MDC</option><option value="MNL">Manila (NAIA) - MNL</option><option value="MKW">Manokwari - MKW</option><option value="AMI">Mataram - AMI</option><option value="MOF">Maumere - MOF</option><option value="MES">Medan - MES</option><option value="MNA">Melanguane - MNA</option><option value="MEL">Melbourne - MEL</option><option value="MKQ">Merauke - MKQ</option><option value="MEQ">Meulaboh - MEQ</option><option value="NBX">Nabire - NBX</option><option value="NTX">NatunaRanai - NTX</option><option value="PDG">Padang - PDG</option><option value="PKY">Palangka raya - PKY</option><option value="PLM">Palembang - PLM</option><option value="PLW">Palu - PLW</option><option value="PGK">Pangkal pinang - PGK</option><option value="PKU">Pekanbaru - PKU</option><option value="PEN">Penang - PEN</option><option value="PER">Perth - PER</option><option value="PNH">Phnom Penh - PNH</option><option value="HKT">Phuket - HKT</option><option value="PUM">Pomalaa - PUM</option><option value="PNK">Pontianak - PNK</option><option value="PSJ">Poso - PSJ</option><option value="PPS">Puerto Princesa - PPS</option><option value="ARD">Pulau Alor - ARD</option><option value="TAO">Qingdao - TAO</option><option value="RTG">Ruteng - RTG</option><option value="SMQ">Sampit - SMQ</option><option value="SRG">Semarang - SRG</option><option value="SHE">Shenyang - SHE</option><option value="SZX">Shenzhen - SZX</option><option value="AEG">Sibolga - AEG</option><option value="DTB">Silangit - DTB</option><option value="SNX">Sinabang - SNX</option><option value="SIN">Singapore - SIN</option><option value="SOC">Solo - SOC</option><option value="SOQ">Sorong - SOQ</option><option value="SWQ">Sumbawa - SWQ</option><option value="MCY">Sunshine Coast - MCY</option><option value="SUB">Surabaya - SUB</option><option value="TAC">Tacloban - TAC</option><option value="NAH">Tahuna - NAH</option><option value="TPE">Taipei - TPE</option><option value="TMC">Tambolaka - TMC</option><option value="TJQ">Tanjung Pandan - TJQ</option><option value="TNJ">Tanjung Pinang - TNJ</option><option value="TRK">Tarakan - TRK</option><option value="TTE">Ternate - TTE</option><option value="TRV">Thiruvananthapuram - TRV</option><option value="TSN">Tianjin - TSN</option><option value="TIM">Timika - TIM</option><option value="TRZ">Tiruchirapalli (Trichy) - TRZ</option><option value="KAZ">Tobelo - KAZ</option><option value="LUV">Tual - LUV</option><option value="UPG">UjungPandang, Makassar - UPG</option><option value="WGP">Waingapu - WGP</option><option value="WGI">Wangi wangi - WGI</option><option value="JOG">Yogyakarta - JOG</option>  
  6.                   </select>  
  7.                 </fieldset>  
  8. <fieldset>  
  9. <label>Ke</label>  
  10.                   <select class="chzn-select  pull-right" name="a">  
  11.      <option value="ADL">Adelaide - ADL</option><option value="ASP">Alice Springs - ASP</option><option value="AMQ">Ambon - AMQ</option><option value="BCD">Bacolod - BCD</option><option value="BJW">Bajawa - BJW</option><option value="BPN">BalikPapan - BPN</option><option value="BTJ">Banda Aceh - BTJ</option><option value="BDO">Bandung - BDO</option><option value="BLR">Bangalore - BLR</option><option value="BKK">Bangkok - BKK</option><option value="BDJ">Banjarmasin - BDJ</option><option value="DQJ">Banyuwangi - DQJ</option><option value="BTH">Batam - BTH</option><option value="BUW">Baubau - BUW</option><option value="BKS">Bengkulu - BKS</option><option value="BEJ">Berau - BEJ</option><option value="BIK">Biak - BIK</option><option value="BMU">Bima - BMU</option><option value="BNE">Brisbane - BNE</option><option value="WUB">Buli - WUB</option><option value="UOL">Buol - UOL</option><option value="CNS">Cairns - CNS</option><option value="CEB">Cebu - CEB</option><option value="MAA">Chennai - MAA</option><option value="CRK">Clark (Manila) - CRK</option><option value="CFS">Coffs Harbour - CFS</option><option value="CMB">Colombo - CMB</option><option value="DVO">Davao - DVO</option><option selected="" value="DPS">Denpasar, Bali - DPS</option><option value="DAC">Dhaka - DAC</option><option value="ENE">Ende - ENE</option><option value="FKQ">FakFak - FKQ</option><option value="OOL">Gold Coast - OOL</option><option value="GTO">Gorontalo - GTO</option><option value="GNS">GunungSitoli - GNS</option><option value="HAK">Haikou - HAK</option><option value="HAN">Hanoi - HAN</option><option value="HDY">Hat Yai - HDY</option><option value="SGN">Ho Chi Minh City - SGN</option><option value="HBA">Hobart - HBA</option><option value="HKG">Hong Kong - HKG</option><option value="HYD">Hyderabad - HYD</option><option value="ILO">Iloilo - ILO</option><option value="CGK">Jakarta - CGK</option><option value="DJB">Jambi - DJB</option><option value="DJJ">Jayapura - DJJ</option><option value="KNG">Kaimana - KNG</option><option value="KDI">Kendari - KDI</option><option value="COK">Kochi - COK</option><option value="KBU">Kotabaru - KBU</option><option value="KBV">Krabi - KBV</option><option value="KUL">Kuala Lumpur - KUL</option><option value="KOE">Kupang - KOE</option><option value="LBJ">LabuanBajo - LBJ</option><option value="LAH">Labuha - LAH</option><option value="TKG">Lampung - TKG</option><option value="LSW">Lhokseumawe - LSW</option><option value="LOP">Lombok, Mataram - LOP</option><option value="LUW">Luwuk - LUW</option><option value="MFM">Macau - MFM</option><option value="MKY">Mackay (Whitsundays) - MKY</option><option value="MLG">Malang - MLG</option><option value="MJU">Mamuju - MJU</option><option value="MDC">Manado - MDC</option><option value="MNL">Manila (NAIA) - MNL</option><option value="MKW">Manokwari - MKW</option><option value="AMI">Mataram - AMI</option><option value="MOF">Maumere - MOF</option><option value="MES">Medan - MES</option><option value="MNA">Melanguane - MNA</option><option value="MEL">Melbourne - MEL</option><option value="MKQ">Merauke - MKQ</option><option value="MEQ">Meulaboh - MEQ</option><option value="NBX">Nabire - NBX</option><option value="NTX">NatunaRanai - NTX</option><option value="PDG">Padang - PDG</option><option value="PKY">Palangka raya - PKY</option><option value="PLM">Palembang - PLM</option><option value="PLW">Palu - PLW</option><option value="PGK">Pangkal pinang - PGK</option><option value="PKU">Pekanbaru - PKU</option><option value="PEN">Penang - PEN</option><option value="PER">Perth - PER</option><option value="PNH">Phnom Penh - PNH</option><option value="HKT">Phuket - HKT</option><option value="PUM">Pomalaa - PUM</option><option value="PNK">Pontianak - PNK</option><option value="PSJ">Poso - PSJ</option><option value="PPS">Puerto Princesa - PPS</option><option value="ARD">Pulau Alor - ARD</option><option value="TAO">Qingdao - TAO</option><option value="RTG">Ruteng - RTG</option><option value="SMQ">Sampit - SMQ</option><option value="SRG">Semarang - SRG</option><option value="SHE">Shenyang - SHE</option><option value="SZX">Shenzhen - SZX</option><option value="AEG">Sibolga - AEG</option><option value="DTB">Silangit - DTB</option><option value="SNX">Sinabang - SNX</option><option value="SIN">Singapore - SIN</option><option value="SOC">Solo - SOC</option><option value="SOQ">Sorong - SOQ</option><option value="SWQ">Sumbawa - SWQ</option><option value="MCY">Sunshine Coast - MCY</option><option value="SUB">Surabaya - SUB</option><option value="TAC">Tacloban - TAC</option><option value="NAH">Tahuna - NAH</option><option value="TPE">Taipei - TPE</option><option value="TMC">Tambolaka - TMC</option><option value="TJQ">Tanjung Pandan - TJQ</option><option value="TNJ">Tanjung Pinang - TNJ</option><option value="TRK">Tarakan - TRK</option><option value="TTE">Ternate - TTE</option><option value="TRV">Thiruvananthapuram - TRV</option><option value="TSN">Tianjin - TSN</option><option value="TIM">Timika - TIM</option><option value="TRZ">Tiruchirapalli (Trichy) - TRZ</option><option value="KAZ">Tobelo - KAZ</option><option value="LUV">Tual - LUV</option><option value="UPG">UjungPandang, Makassar - UPG</option><option value="WGP">Waingapu - WGP</option><option value="WGI">Wangi wangi - WGI</option><option value="JOG">Yogyakarta - JOG</option>  
  12.                   </select>  
  13.                 </fieldset>  
  14. <fieldset class="sel-pergi">  
  15. <label class="check-in"><em class="cal-icon" id="btnDeparture"></em>Pergi</label>  
  16.       <input id="from" name="date" placeholder="yy-mm-dd" style="width: 242px;" value="" type="text">  
  17.                 </fieldset>  
  18. <fieldset class="sel-pergi" id="home-pulang">  
  19. <label class="check-in"><em class="cal-icon2" id="btnReturn"></em>Pulang</label>  
  20.       <input id="to" name="ret_date" placeholder="yy-mm-dd" style="width: 242px;" value="" type="text">        
  21.                 </fieldset>  
  22. <div class="clear">  
  23. </div>  
  24. <fieldset class="last dewasa pull-left">  
  25. <label>Dewasa</label>  
  26.                 <select class="" name="adult">  
  27.                   <option>1</option>  
  28.                   <option>2</option>  
  29.                   <option>3</option>  
  30.                   <option>4</option>  
  31.                     
  32.                 </select>  
  33.               </fieldset>  
  34. <fieldset class="last pull-left">  
  35. <label style="width: 90px;">Anak (2-12 th)</label>  
  36.                 <select class="anak" name="child">  
  37.                   <option>0</option>  
  38.                   <option>1</option>  
  39.                   <option>2</option>  
  40.                   <option>3</option>  
  41.                   <option>4</option>  
  42.                 </select>  
  43.               </fieldset>  
  44. <fieldset class="last pull-right">  
  45. <label>Bayi (<2 th)</label>  
  46.                 <select class="" name="infant">  
  47.                   <option>0</option>  
  48.                   <option>1</option>  
  49.                   <option>2</option>  
  50.                   <option>3</option>  
  51.                   <option>4</option>  
  52.                 </select>  
  53.               </fieldset>  
  54. <div class="clear">  
  55. </div>  
  56. <input name="uid" value="" type="hidden">  
  57.               <button class="btn cari btn-primary" id="cari" type="submit">Cari</button>  
  58.       <input id="flight_type" name="flight_type" value="return" type="hidden">  
  59. </form>  
Sedangkan untuk flight.php nya
  1. session_start();  
  2. error_reporting(0);  
  3. $d    =$_GET['d'];  
  4. $a    =$_GET['a'];  
  5. $date   =$_GET['date'];  
  6. $ret_date  =$_GET['ret_date'];  
  7. $adult  =$_GET['adult'];  
  8. $child  =$_GET['child'];  
  9. $infant  =$_GET['infant'];  
  10. $flight_type=$_GET['flight_type'];  
  11. array('header' => 'Host: api.tiket.com')));  
  12. $url="https://api.tiket.com/apiv1/payexpress?method=getToken&secretkey=b97ac0e9c1d0c4ccf60a8de679406a12&output=json";  
  13. $data = json_decode(file_get_contents($url, 0, $context));   
  14.   
  15. $token = $data->token;  
  16. //kirim token kesemua halaman  
  17. $token = $token;  
  18. print $token;  
  19. $_SESSION['token'] = "$token";  
  20.   
  21.   
  22. $context = stream_context_create(array('http' => array('header' => 'Host: api.tiket.com')));  
  23. $url="http://api.tiket.com/search/flight?d=$_GET[d]&a=$_GET[a]&date=$_GET[date]&ret_date=$_GET[ret_date]&adult=$_GET[adult]&child=$_GET[child]&infant=$_GET[infant]&token=$token&v=3&output=json";  
  24.   
  25. $data = json_decode(file_get_contents($url, 0, $context));  
  26.   
  27. $pesanerr = $data->diagnostic->error_msgs;  
  28.   
  29. if($d==$d) echo "$pesanerr";  
  30. else  
  31. echo "";  
  32. //$nomer = 0;  
  33.   
  34. function comparePriceAdult($a, $b) {  
  35. $pa = $a->price_adult;  
  36. $pb = $b->price_adult;  
  37. if ($pa < $pb) return -1;  
  38. if ($pa > $pb) return 1;  
  39. return 0;  
  40. }  
  41.   
  42. usort($data->departures->result, 'comparePriceAdult');  
  43.   
  44.   
  45. foreach($data->departures->result as $rows)  
  46. //coda insert ke db disni   
  47.   
  48. {  
  49. //$nomer++;  
  50.   $row=(array)$rows;  
  51.  $airlines = "$row[airlines_name]";  
  52.  $logo = $airlines;  
  53.  $logo_lion   = "<img src="images/JT.png">";  
  54.  $logo_airasia  = "<img src="images/QZ.png">";  
  55.  $logo_citilink  = "<img src="images/QG.png">";  
  56.  $logo_sriwijaya = "<img src="images/SJ.png">";  
  57.  $logo_mandala = "<img src="images/RI.png">";  
  58.  $logo_lain = "<img src="$row[image]" width="60">";  
  59.  if ($logo =="LION") {  
  60.  $logo = $logo_lion;  
  61.  }  
  62.  else if ($logo =="AIRASIA"){  
  63.  $logo = $logo_airasia;  
  64.  }  
  65.  else if ($logo =="CITILINK"){  
  66.  $logo = $logo_citilink;  
  67.  }  
  68.  else if ($logo =="SRIWIJAYA"){  
  69.  $logo = $logo_sriwijaya;  
  70.  }  
  71.  else if ($logo =="MANDALA"){  
  72.  $logo = $logo_mandala;  
  73.  }  
  74.  else {  
  75.  $logo = $logo_lain;  
  76.  }  
  77.   $code_airlines = "$row[airlines_name]";   
  78.  if ($code_airlines =="AIRASIA"){  
  79.  $code_airlines ="QZ";  
  80.  }  
  81.  else if ($code_airlines =="LION"){  
  82.   $code_airlines ="JT";  
  83.  }  
  84.  else if ($code_airlines =="CITILINK"){  
  85.  $code_airlines ="QG";  
  86.  }  
  87.  else if ($code_airlines =="SRIWIJAYA"){  
  88.   $code_airlines ="SJ";  
  89.  }  
  90.  else if ($code_airlines =="MANDALA"){  
  91.   $code_airlines ="RI";  
  92.   
  93.  }  
  94.  else{  
  95.  $code_airlines ="";  
  96.  }  
  97.    
  98.  $stop = "$row[stop]";  
  99.  if ($stop =="Langsung"){  
  100.  $stop ="0";  
  101.  }  
  102.  else if ($stop =="1 Transit"){  
  103.  $stop ="1";  
  104.  }  
  105.  else{  
  106.  $stop ="";  
  107.  }  
  108.  //$urutan = $row[price_adult];  
  109.  //$formattedNum = number_format($urutan, 2);  
  110.    
  111.  //rsort($nomer);  
  112.  //echo "$urutan";  
  113.  //$flight_infos=(array)$row->flight_infos;  
  114.  $imagex = $row[image];  
  115.  //".number_format($row['price_adult'],0,",",".")."  
  116.  echo "  
  117.      
  118.                   
  119.        
  120.        
  121.      <div>  
  122. $logo<strong class="pull-right">$row[flight_number]</strong>  
  123.      </div>  
  124. <div>  
  125. <span class="depart">$row[simple_departure_time] - $row[simple_arrival_time]</span>  
  126.        
  127.   
  128. <span class="duration">$row[duration]</span>  
  129.      </div>  
  130. <div>  
  131. $row[stop]</div>  
  132. <div class="bagasi">  
  133. </div>  
  134. <div>  
  135. <div class="price pull-left">  
  136. <strong>  
  137.      <span class="currency">Rp ".number_format($row['price_adult'],0,",",".")."</span></strong></div>  
  138. <strong><button class="btn pilih btn-primary pesanJT_30" id="order" name="flight_id" type="submit" value="$row[flight_id]">Pesan</button></strong>   
  139.      </div>  
  140. ";  
  141.   
  142. }  
  143.   
  144. ?>  
---Bersambung----

1 komentar: