· 6 years ago · Jan 27, 2020, 09:08 AM
1<?php
2
3/**
4 * Code By : Mahiruddin a.k.a Mhrdpy.NET
5 * Date Edit : 16 - 12 - 2018
6 * Dont Edit Anything If You Don't Know About Script
7 * SMM Panel Script - Mhrdpy.NET
8 * Demo => https://scriptsmm.web.id/ ( User & Pass : admin )
9 * Contact Person :
10 => Whatsapp : 0895 3378 26740
11 => Facebook : Mahir Depay (https://facebook.com/hirpayzzz)
12 => Instagram : mahirdpy_ (https://instagram.com/mahirdpy_)
13 => Email : mahirdpy@gmail.com
14 __ __ _ _ _ _ ______ _______
15 | \/ | | | | | \ | | ____|__ __|
16 | \ / | |__ _ __ __| |_ __ _ _ | \| | |__ | |
17 | |\/| | '_ \| '__/ _` | '_ \| | | | | . ` | __| | |
18 | | | | | | | | | (_| | |_) | |_| |_| |\ | |____ | |
19 |_| |_|_| |_|_| \__,_| .__/ \__, (_)_| \_|______| |_|
20 | | __/ |
21 |_| |___/
22**/
23
24session_start();
25require("../mainconfig.php");
26$page_type = "Buat Pesanan";
27
28if (isset($_SESSION['user'])) {
29 $sess_username = $_SESSION['user']['username'];
30 $check_user = $db->query("SELECT * FROM users WHERE username = '$sess_username'");
31 $data_user = $check_user->fetch_array(MYSQLI_ASSOC);
32 if ($check_user->num_rows == 0) {
33 header("Location: ".$site_config['base_url']."user/logout");
34 } else if ($data_user['status'] == "Suspended") {
35 header("Location: ".$site_config['base_url']."user/logout");
36 }
37
38 include("../lib/header.php");
39 $msg_type = "nothing";
40
41 if (isset($_POST['order'])) {
42 $post_service = $db->real_escape_string(stripslashes(strip_tags(htmlspecialchars($_POST['service'], ENT_QUOTES))));
43 $post_phone = $db->real_escape_string(stripslashes(strip_tags(htmlspecialchars($_POST['phone'], ENT_QUOTES))));
44
45 $check_service = $db->query("SELECT * FROM services_pulsa WHERE sid = '$post_service' AND status = 'Active'");
46 $data_service = $check_service->fetch_array(MYSQLI_ASSOC);
47
48 $price = $data_service['price'];
49 $service = $data_service['service'];
50 $provider = $data_service['provider'];
51 $pid = $data_service['pid'];
52 $post_category = $data_service['category'];
53
54 $check_orders = $db->query("SELECT * FROM orders_pulsa WHERE user = '$sess_username' AND service = '$service' AND date = '$date'");
55 $data_orders = $check_orders->fetch_array(MYSQLI_ASSOC);
56 $count_orders = $check_orders->num_rows;
57
58 $check_provider = $db->query("SELECT * FROM provider WHERE code = '$provider'");
59 $data_provider = $check_provider->fetch_array(MYSQLI_ASSOC);
60
61 if (empty($post_service) || empty($post_phone)) {
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 ($data_user['balance'] < $price) {
68 $msg_type = "error";
69 $msg_content = "<b>Gagal!</b> Saldo Anda tidak mencukupi untuk melakukan pembelian ini.";
70 } else {
71
72 // api data
73 $link = $data_provider['link'];
74 $key = $data_provider['api_key'];
75 // end api data
76
77 if ($provider == "MANUAL") {
78 $api_postdata = "";
79 } else if ($provider == "SMP") {
80 final class Rest{
81 public $url = 'https://solosmartpedia.com/api/';
82 public $apikey = 'ZWYyYjdlMmU0ZWMzOWRlMzAzMTdiMjI4NTFlOGNhNTNlMmViYWUyMA==';
83
84 public function get_method($method,$data){
85 return json_decode($this->curl($method,$this->url.'/user?'.http_build_query($data)));
86 }
87
88 public function order_sosmed($method,$data){
89 return json_decode($this->curl($method,$this->url.'/sosmed',array_merge(array('X-API-KEY'=>trim($this->apikey)),$data)));
90 }
91
92 public function order_pulsa($method,$data){
93 return json_decode($this->curl($method,$this->url.'/pulsa',array_merge(array('X-API-KEY'=>trim($this->apikey)),$data)));
94 }
95
96
97 private function curl($method,$end_point,$data=''){
98 //inisialisasi;
99 $ch = curl_init($end_point);
100 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
101 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
102 curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
103 curl_setopt($ch, CURLOPT_HEADER,0);
104 curl_setopt($ch, CURLOPT_CUSTOMREQUEST,$method);
105 curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0');
106 var_dump($result);
107 switch($method){
108 case 'POST':
109 curl_setopt($ch,CURLOPT_POST,1);
110 curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
111 break;
112 case 'GET':
113 curl_setopt($ch, CURLOPT_HTTPHEADER,array('X-API-KEY:'.$this->apikey));
114 break;
115 }
116 $result = curl_exec($ch);
117 curl_close($ch);
118 return $result;
119 }
120}
121
122#ALL IN ONE
123$api = new Rest();
124$json_result = $api->order_sosmed('POST',array('type'=>'order','service'=>$pid,'target'=>$post_link,'quantity'=>$post_quantity)); #@Param $service,$target,$quantity
125 }
126
127 if ($provider == "SMP" AND $json_result->status == 'false') {
128 $msg_type = "error";
129 $msg_content = "<b>Gagal:</b> Server Maintenance (1).".$json_result->message;
130
131 } else {
132 if ($provider == "SMP") {
133 $poid = $json_result->id_order;
134 } else {
135 $poid = $oid;
136 }
137 $update_user = $db->query("UPDATE users SET balance = balance-$price WHERE username = '$sess_username'");
138 if ($update_user == TRUE) {
139 $insert_order = $db->query("INSERT INTO orders_pulsa (oid, poid, user, service, link, price, status, date, provider, place_from) VALUES ('$oid', '$poid', '$sess_username', '$service', '$post_phone', '$price', 'Pending', '$date', '$provider', 'WEB')");
140 $insert_order = mysqli_query($db, "INSERT INTO balance_history (username, type, category, quantity, message, date, time) VALUES ('$sess_username', 'Minus', 'Place Order', '$price', 'Membuat pesanan #$oid', '$date', '$time')");
141 if ($insert_order == TRUE) {
142 $msg_type = "success";
143 $msg_content = "<b>Pesanan telah diterima.</b><br /><b>Layanan:</b> $service<br /><b>No. Telp:</b> $post_phone<br /><b>Biaya:</b> Rp ".number_format($price,0,',','.');
144 } else {
145 $msg_type = "error";
146 $msg_content = "<b>Gagal:</b> Error system (2).";
147 }
148 } else {
149 $msg_type = "error";
150 $msg_content = "<b>Gagal:</b> Error system (1).";
151 }
152 }
153 }
154 }
155
156 $check_user = $db->query("SELECT * FROM users WHERE username = '$sess_username'");
157 $data_user = $check_user->fetch_array(MYSQLI_ASSOC);
158?>
159 <div class="row">
160 <div class="col-md-7">
161 <div class="card-box">
162 <h4 class="m-t-0 text-uppercase header-title"><i class="mdi mdi-cart"></i> Pemesanan Baru</h4><hr>
163 <?php
164 if ($msg_type == "success") {
165 ?>
166 <div class="alert alert-success alert-dismissable">
167 <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
168 <?php echo $msg_content; ?>
169 </div>
170 <?php
171 } else if ($msg_type == "error") {
172 ?>
173 <div class="alert alert-danger alert-dismissable">
174 <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
175 <?php echo $msg_content; ?>
176 </div>
177 <?php
178 }
179 ?>
180 <form class="form-horizontal" role="form" method="POST">
181 <div class="form-group row">
182 <label class="col-md-2 control-label">Kategori</label>
183 <div class="col-md-10">
184 <select class="form-control" id="category">
185 <option value="0">Pilih salah satu...</option>
186 <option value="PULSA">Pulsa Isi Ulang</option>
187 <option value="PKIN">Paket Internet</option>
188 <option value="VGAME">Voucher Game</option>
189 <option value="SALGO">Saldo Gojek</option>
190 <option value="PKSMS">Paket SMS</option>
191 <option value="SALGO">Pulsa Transfer</option>
192 </select>
193 </div>
194 </div>
195 <div class="form-group row">
196 <label class="col-md-2 control-label">Tipe</label>
197 <div class="col-md-10">
198 <select class="form-control" name="provider" id="provider">
199 <option value="0">Silahkan pilih kategori...</option>
200 </select>
201 </div>
202 </div>
203 <div class="form-group row">
204 <label class="col-md-2 control-label">Layanan</label>
205 <div class="col-md-10">
206 <select class="form-control" name="service" id="service">
207 <option value="0">Silahkan pilih kategori...</option>
208 </select>
209 </div>
210 </div>
211 <div id="note"></div>
212 <div id="input_nolistrik"></div>
213 <div class="form-group row">
214 <label class="col-md-2 control-label">Nomor Telepon</label>
215 <div class="col-md-10">
216 <input type="text" name="phone" class="form-control" placeholder="No. Telp">
217 </div>
218 </div>
219 <div class="form-group row">
220 <label class="col-md-2 control-label">Jumlah Deposit</label>
221 <div class="col-md-10">
222 <div class="input-group">
223 <div class="input-group-prepend">
224 <span class="input-group-text">Rp</span>
225 </div>
226 <input type="number" class="form-control" id="rate" value="0" readonly>
227 </div>
228 </div>
229 </div>
230 <div class="form-group row">
231 <div class="offset-lg-2 col-lg-8">
232 <button type="reset" class="btn btn-secondary btn-bordred"><i class="fa fa-refresh"></i> Reset </button>
233 <button type="submit" class="btn btn-custom btn-bordred" name="order"><i class="fa fa-send"></i> Submit </button>
234 </div>
235 </div>
236 </form>
237 </div>
238 </div>
239 <div class="col-md-5">
240 <div class="card-box">
241 <h4 class="m-t-0 text-uppercase header-title"><i class="mdi mdi-book"></i> Panduan Pemesanan</h4><hr>
242 Tata cara pengisian form pemesanan:
243 <ul>
244 <li>Pilih salah satu kategori pada <b>Kategori</b>, lalu pilih <b>Tipe</b> yang sesuai, maka akan ditampilkan daftar layanan yang tersedia pada <b>Layanan</b>, silahkan pilih salah satu layanan.</li>
245 <li>Masukkan data berupa nomer handphone pada <b>Nomer Telepon</b> sesuai permintaan yang ditampilkan setelah memilih layanan.</li>
246 <li>Jika semua input sudah terisi dengan benar, klik <b>Kirim</b>. Pesanan akan diproses jika hasil yang ditampilkan setelah submit sukses.</li>
247 <li>Jika pesanan <i>stuck</i>/tidak berubah status dari pending, Anda dapat menghubungi Admin melalui tiket.</li>
248 </ul>
249 Tata cara mengisi input <b>Data</b> yang sesuai:
250 <ul>
251 <li>Masukkan data berupa nomer handphone sesuai yang diminta.</li>
252 <li>jika terjadi kesalahan pengisian data oleh pengguna, harap segera hubungi admin.</li>
253 </ul>
254 </div>
255 </div>
256 </div>
257<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.js"></script>
258<script type="text/javascript">
259$(document).ready(function() {
260 $("#category").change(function() {
261 var category = $("#category").val();
262 $.ajax({
263 url: '<?php echo $site_config['base_url']; ?>inc/pulsa/check_provider.php',
264 data: 'category=' + category,
265 type: 'POST',
266 dataType: 'html',
267 success: function(msg) {
268 $("#provider").html(msg);
269 }
270 });
271
272 $.ajax({
273 url: '<?php echo $site_config['base_url']; ?>inc/pulsa/input_nolistrik.php',
274 data: 'category=' + category,
275 type: 'POST',
276 dataType: 'html',
277 success: function(msg) {
278 $("#input_nolistrik").html(msg);
279 }
280 });
281
282
283 });
284
285 $("#provider").change(function() {
286 var provider = $("#provider").val();
287 $.ajax({
288 url: '<?php echo $site_config['base_url']; ?>inc/pulsa/order_service.php',
289 data: 'provider=' + provider,
290 type: 'POST',
291 dataType: 'html',
292 success: function(msg) {
293 $("#service").html(msg);
294 }
295 });
296 });
297
298
299
300 $("#service").change(function() {
301 var service = $("#service").val();
302 $.ajax({
303 url: '<?php echo $site_config['base_url']; ?>inc/pulsa/order_note.php',
304 data: 'service=' + service,
305 type: 'POST',
306 dataType: 'html',
307 success: function(msg) {
308 $("#note").html(msg);
309 }
310 });
311
312
313 $.ajax({
314 url: '<?php echo $site_config['base_url']; ?>inc/pulsa/order_rate.php',
315 data: 'service=' + service,
316 type: 'POST',
317 dataType: 'html',
318 success: function(msg) {
319 $("#rate").val(msg);
320 }
321 });
322 });
323});
324
325 </script>
326<?php
327 include("../lib/footer.php");
328} else {
329 header("Location: ".$site_config['base_url']);
330}
331?>