Advertisement
Guest User

asal

a guest
Mar 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.28 KB | None | 0 0
  1. <?php
  2. session_start();
  3. require("../mainconfig.php");
  4.  
  5. if (isset($_SESSION['user'])) {
  6. $sess_username = $_SESSION['user']['username'];
  7. $check_user = mysqli_query($db, "SELECT * FROM users WHERE username = '$sess_username'");
  8. $data_user = mysqli_fetch_assoc($check_user);
  9. if (mysqli_num_rows($check_user) == 0) {
  10. header("Location: ".$cfg_baseurl."logout.php");
  11. } else if ($data_user['status'] == "Suspended") {
  12. header("Location: ".$cfg_baseurl."logout.php");
  13. }
  14.  
  15. include("../lib/header.php");
  16. $msg_type = "nothing";
  17.  
  18. if (isset($_POST['order'])) {
  19. $post_service = mysqli_real_escape_string($db, trim(stripslashes(strip_tags(htmlspecialchars($_POST['service'],ENT_QUOTES)))));
  20. $post_quantity = mysqli_real_escape_string($db, trim(stripslashes(strip_tags(htmlspecialchars($_POST['quantity'],ENT_QUOTES)))));
  21. $post_link = mysqli_real_escape_string($db, trim(stripslashes(strip_tags(htmlspecialchars($_POST['link'],ENT_QUOTES)))));
  22. $post_comments = $_POST['comment'];
  23. $post_cuslink = mysqli_real_escape_string($db, trim(stripslashes(strip_tags(htmlspecialchars($_POST['cuslink'],ENT_QUOTES)))));
  24.  
  25. function generateOrderId($length = 8) {
  26. $characters = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  27. $charactersLength = strlen($characters);
  28. $randomString = '';
  29. for ($i = 0; $i < $length; $i++) {
  30. $randomString .= $characters[rand(0, $charactersLength - 1)];
  31. }
  32. return $randomString;
  33. }
  34. $check_service = mysqli_query($db, "SELECT * FROM services WHERE id = '$post_service' AND status = 'Active'");
  35. $data_service = mysqli_fetch_assoc($check_service);
  36.  
  37. $check_orders = mysqli_query($db, "SELECT * FROM orders WHERE link = '$post_link' AND status IN ('Pending','Processing')");
  38. $data_orders = mysqli_fetch_assoc($check_orders);
  39. $rate = $data_service['price'] / 1000;
  40. $hitung = count(explode(PHP_EOL, $post_comments));
  41. $mmekdusu = str_replace("\r\n",'\r\n', $post_comments);
  42. if (!empty($post_comments)) {
  43. $post_quantity = $hitung;
  44. } else {
  45. $post_quantity = $post_quantity;
  46. }
  47. // $price = $rate*$post_quantity;
  48. if (!empty($post_comments)) {
  49. $price = $rate*$hitung;
  50. } else {
  51. $price = $rate*$post_quantity;
  52. }
  53. $oid = generateOrderId();
  54. $service = $data_service['service'];
  55. $provider = $data_service['provider'];
  56. $pid = $data_service['pid'];
  57.  
  58. $check_provider = mysqli_query($db, "SELECT * FROM provider WHERE code = '$provider'");
  59. $data_provider = mysqli_fetch_assoc($check_provider);
  60.  
  61. if (empty($post_service) || empty($post_link) || empty($post_quantity)) {
  62. $msg_type = "error";
  63. $msg_content = "<b>Gagal:</b> Mohon mengisi input.";
  64. } else if (mysqli_num_rows($check_service) == 0) {
  65. $msg_type = "error";
  66. $msg_content = "<b>Gagal:</b> Layanan tidak ditemukan.";
  67. } else if (mysqli_num_rows($check_provider) == 0) {
  68. $msg_type = "error";
  69. $msg_content = "<b>Gagal:</b> Server Maintenance.";
  70. } else if ($post_quantity < $data_service['min']) {
  71. $msg_type = "error";
  72. $msg_content = "<b>Gagal:</b> Jumlah minimal adalah ".$data_service['min'].".";
  73. } else if ($post_quantity > $data_service['max']) {
  74. $msg_type = "error";
  75. $msg_content = "<b>Gagal:</b> Jumlah maksimal adalah ".$data_service['max'].".";
  76. } else if ($data_user['balance'] < $price) {
  77. $msg_type = "error";
  78. $msg_content = "<b>Gagal:</b> Saldo Anda tidak mencukupi untuk melakukan pembelian ini.";
  79. } else {
  80.  
  81. // api data
  82. $api_link = $data_provider['link'];
  83. $api_key = $data_provider['api_key'];
  84. // end api data
  85.  
  86. if ($provider == "SI") {
  87. $postdata = "api_id=1208&api_key=$api_key&service=$pid&target=$post_link&quantity=$post_quantity&custom_comments=$post_comments&custom_link=$post_cuslink";
  88. $ch = curl_init();
  89. curl_setopt($ch, CURLOPT_URL, $api_link);
  90. curl_setopt($ch, CURLOPT_POST, 1);
  91. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  92. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  93. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  94. $chresult = curl_exec($ch);
  95. curl_close($ch);
  96. $json_result = json_decode($chresult, true);
  97. } else if ($provider == "SM") {
  98. $postdata = "api_key=$api_key&action=order&service=$pid&data=$post_link&quantity=$post_quantity";
  99. $ch = curl_init();
  100. curl_setopt($ch, CURLOPT_URL, "$api_link");
  101. curl_setopt($ch, CURLOPT_POST, 1);
  102. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  103. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  104. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  105. $chresult = curl_exec($ch);
  106. curl_close($ch);
  107. $json_result = json_decode($chresult, true);
  108. } else if ($provider == "BP") {
  109. $postdata = "pin=PINKEAMANAN&key=$api_key&action=pesan&service=$pid&link=$post_link&quantity=$post_quantity";
  110. $ch = curl_init();
  111. curl_setopt($ch, CURLOPT_URL, "$api_link");
  112. curl_setopt($ch, CURLOPT_POST, 1);
  113. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  114. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  115. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  116. $chresult = curl_exec($ch);
  117. curl_close($ch);
  118. $json_result = json_decode($chresult, true);
  119. } else {
  120. die("System Error!");
  121. }
  122.  
  123. if ($provider == "SI" AND $json_result['status'] == FALSE) {
  124. $msg_type = "error";
  125. $msg_content = "<b>Failed:</b> ".$json_result['data'].", Hubungi Admin";
  126. } else if ($provider == "SM" AND $json_result['status'] == FALSE) {
  127. $msg_type = "error";
  128. $msg_content = "<b>Failed:</b> ".$json_result['data']['msg'].", Hubungi Admin";
  129. } else if ($provider == "BP" AND $json_result['status'] == FALSE) {
  130. $msg_type = "error";
  131. $msg_content = "<b>Failed:</b> ".$json_result['error'].", Hubungi Admin";
  132. } else {
  133. if ($provider == "SI") {
  134. $poid = $json_result['data']['id'];
  135. } else if ($provider == "SM") {
  136. $poid = $json_result['data']['id'];
  137. } else if ($provider == "BP") {
  138. $poid = $json_result['order_id'];
  139. }
  140.  
  141. $update_user = mysqli_query($db, "UPDATE users SET balance = balance - $price WHERE username = '$sess_username'");
  142. $update_user = mysqli_query($db, "UPDATE users SET balance_used = balance_used + $price WHERE username = '$sess_username'");
  143. if ($update_user == TRUE) {
  144. $insert_balance = mysqli_query($db, "INSERT INTO balance_history (username, action, quantity, msg, date, time) VALUES ('$sess_username', 'Pemotongan Saldo', '$price', 'Membuat pesanan baru. Id Pesanan: $oid (WEB)', '$date', '$time')");
  145. if ($insert_balance == TRUE) {
  146. $insert_order = mysqli_query($db, "INSERT INTO orders (oid, poid, user, service, link, quantity, price, status, date, provider, place_from) VALUES ('$oid', '$poid', '$sess_username', '$service', '$post_link', '$post_quantity', '$price', 'Pending', '$date', '$provider', 'WEB')");
  147. $insert_order = mysqli_query($db, "UPDATE hof_pembelian SET pembelian = pembelian + $price WHERE username = '$sess_username'");
  148. $insert_order = mysqli_query($db, "UPDATE hof_pembelian SET jumlah = jumlah + 1 WHERE username = '$sess_username'");
  149. if ($insert_order == TRUE) {
  150. $msg_type = "success";
  151. $msg_content = "<b>Pesanan telah diterima.</b><br /><b>Layanan:</b> $service<br /><b>Link:</b> $post_link<br /><b>Jumlah:</b> ".number_format($post_quantity,0,',','.')."<br /><b>Biaya:</b> Rp ".number_format($price,0,',','.');
  152. } else {
  153. $msg_type = "error";
  154. $msg_content = "<b>Gagal:</b> Error system (2).";
  155. }
  156. } else {
  157. $msg_type = "error";
  158. $msg_content = "<b>Gagal:</b> Error system (1).";
  159. }
  160. } else {
  161. $msg_type = "error";
  162. $msg_content = "<b>Gagal:</b> Error system (3)";
  163. }
  164. }
  165. }
  166. }
  167. ?>
  168. <div class="row">
  169. <div class="col-lg-6">
  170. <div class="panel panel-color panel-default">
  171. <div class="panel-heading">
  172. <i class="fa fa-shopping-cart"></i> Pemesanan Baru
  173. </div>
  174. <div class="panel-body">
  175.  
  176. <?php
  177. if ($msg_type == "success") {
  178. ?>
  179. <div class="alert alert-icon alert-success alert-dismissible fade in" role="alert">
  180. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  181. <span aria-hidden="true">&times;</span>
  182. </button>
  183. <i class="fa fa-check-circle"></i>
  184. <?php echo $msg_content; ?>
  185. </div>
  186. <?php
  187. } else if ($msg_type == "error") {
  188. ?>
  189. <div class="alert alert-icon alert-danger alert-dismissible fade in" role="alert">
  190. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  191. <span aria-hidden="true">&times;</span>
  192. </button>
  193. <i class="fa fa-times-circle"></i>
  194. <?php echo $msg_content; ?>
  195. </div>
  196.  
  197. <?php
  198. }
  199. ?>
  200.  
  201. <form class="form-horizontal" method="POST">
  202. <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>" />
  203. <div class="form-group">
  204. <label class="col-sm-3 control-label">Kategori</label>
  205. <div class="col-sm-9">
  206. <select class="form-control" id="category">
  207. <option value="0">Pilih salah satu</option>
  208. <?php
  209. $check_cat = mysqli_query($db, "SELECT * FROM service_cat ORDER BY name ASC");
  210. while ($data_cat = mysqli_fetch_assoc($check_cat)) {
  211. ?>
  212. <option value="<?php echo $data_cat['code'];?>"><?php echo $data_cat['name'];?></option>
  213. <?php
  214. }
  215. ?>
  216. </select>
  217. </div>
  218. </div>
  219. <div class="form-group">
  220. <label class="col-sm-3 control-label">Layanan</label>
  221. <div class="col-sm-9">
  222. <select class="form-control" name="service" id="service">
  223. <option value="0">Pilih salah satu</option>
  224. </select>
  225. </div>
  226. </div>
  227. <div class="form-group">
  228. <div class="col-sm-offset-3 col-sm-9">
  229. <div id="note"></div>
  230. </div>
  231. </div>
  232. <div class="form-group">
  233. <label class="col-sm-3 control-label">Link/Target</label>
  234. <div class="col-sm-9">
  235. <input class="form-control" name="link" type="text"/>
  236. </div>
  237. </div>
  238. <div id="custom_comment" style="display: none;">
  239. <div class="form-group row">
  240. <label class="col-form-label col-md-2">Comment</label>
  241. <div class="col-md-12">
  242. <textarea class="form-control" name="comment" id="comments" placeholder="Pisahkan Tiap Baris komentar dengan enter"></textarea>
  243. </div>
  244. </div>
  245. </div>
  246. <div id="custom_link" style="display: none;">
  247. <div class="form-group row">
  248. <label class="col-form-label col-md-2">URL Post</label>
  249. <div class="col-md-12">
  250. <input type="text" name="cuslink" class="form-control" placeholder="URL Post">
  251. </div>
  252. </div>
  253. </div>
  254. <div class="form-group">
  255. <label class="col-sm-3 control-label">Jumlah</label>
  256. <div class="col-sm-9">
  257. <input class="form-control" name="quantity" id ="quantity" type="number" onkeyup="get_total(this.value).value;"/>
  258. </div>
  259. </div>
  260. <input type="hidden" id="rate" value="0"/>
  261. <div class="form-group">
  262. <label class="col-sm-3 control-label">Total Harga Jasa</label>
  263. <div class="col-sm-9">
  264. <input class="form-control" type="number" id="total" readonly/>
  265. </div>
  266. </div>
  267. <div class="form-group">
  268. <div class="col-sm-offset-3 col-sm-9">
  269. <button type="submit" class="btn btn-primary pull-right" name="order">Order</button>
  270. </div>
  271. </div>
  272. </form>
  273. </div>
  274. </div>
  275. </div>
  276.  
  277. <div class="col-lg-6">
  278. <div class="panel panel-color panel-default">
  279. <div class="panel-heading">
  280. <i class="fa fa-info-circle"></i> Informasi Pemesanan
  281. </div>
  282. <div class="panel-body">
  283. <center><b>WAJIB BACA!!<br/>PERATURAN SEBELUM ORDER</b></center><br/>
  284. <ol class="list-p"><b>
  285. <li><b>Jangan menggunakan lebih dari satu layanan sekaligus untuk username/link yang sama. Harap tunggu status <span class="label label-success">Completed</span></b></li>
  286. <li><b>Setelah order dimasukan, jika username/link yang diinput harus berifat publik / tidak private, kami tidak akan mengembalikan. Pastikan Anda memasukkan data yang benar, karena kami tidak akan lagi membatalkan pesanan.</b></li>
  287. <li><b>Perhatikan min/max dalam mengorder, karena order tidak akan jalan bila min/max kekurangan/melebihi.</b></li>
  288. <li><b>Kesalahan member, bukan tanggung jawab admin, karena panel ini serba automatis, jadi hati-hati dan perhatiakan sebelum order!</b></li>
  289. <li><b>Jika Orderan status <span class="label label-danger">Partial</span> & <span class="label label-danger">Canceled</span> Harap Lapor admin untuk di Re-order!</b></li>
  290. <li><b>Jika Pesanan belum selesai, dalam waktu 1x24Jam silakan hubungi Admin!</b></li>
  291. </ol></b>
  292. </div>
  293. </div>
  294. </div>
  295. </div>
  296.  
  297. <script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.js"></script>
  298. <script type="text/javascript">
  299. $(document).ready(function() {
  300. $("#category").change(function() {
  301. var category = $("#category").val();
  302. $.ajax({
  303. url: '<?php echo $cfg_baseurl; ?>inc/order_service.php',
  304. data: 'category=' + category,
  305. type: 'POST',
  306. dataType: 'html',
  307. success: function(msg) {
  308. $("#service").html(msg);
  309. }
  310. });
  311. });
  312. $("#service").change(function() {
  313. var service = $("#service").val();
  314. $.ajax({
  315. url: '<?php echo $cfg_baseurl; ?>inc/order_note.php',
  316. data: 'service=' + service,
  317. type: 'POST',
  318. dataType: 'html',
  319. success: function(msg) {
  320. $("#note").html(msg);
  321. }
  322. });
  323. $.ajax({
  324. url: '<?php echo $cfg_baseurl; ?>inc/order_rate.php',
  325. data: 'service=' + service,
  326. type: 'POST',
  327. dataType: 'html',
  328. success: function(msg) {
  329. $("#rate").val(msg);
  330. }
  331. });
  332. });
  333. });
  334. $("#service").change(function() {
  335. var selectedCountry = $("#service option:selected").text();
  336. if (selectedCountry.indexOf('Custom') !== -1 || selectedCountry.indexOf('custom') !== -1) {
  337. document.getElementById("custom_comment").style.display = "block";
  338. document.getElementById("custom_link").style.display = "none";
  339. } else if (selectedCountry.indexOf('komentar') !== -1 || selectedCountry.indexOf('Komentar') !== -1) {
  340. document.getElementById("custom_comment").style.display = "none";
  341. document.getElementById("custom_link").style.display = "block";
  342. } else {
  343. document.getElementById("custom_comment").style.display = "none";
  344. document.getElementById("custom_link").style.display = "none";
  345. }
  346. });
  347. $('#comments').on('keyup', function() {
  348. var rate = $("#rate").val();
  349. custom_comments = $('#comments').val().split("\n");
  350. quantity = custom_comments.length;
  351. var result = eval(quantity) * rate;
  352. $('#quantity').val(quantity);
  353. $('#total').val(result);
  354. });
  355. function get_total(quantity) {
  356. var rate = $("#rate").val();
  357. var result = eval(quantity) * rate;
  358. $('#total').val(result);
  359. }
  360. </script>
  361. <?php
  362. include("../lib/footer.php");
  363. } else {
  364. header("Location: ".$cfg_baseurl);
  365. }
  366. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement