Google
Edit File: merchant_api1.php
<?php error_reporting(E_ALL); ini_set("display_errors", 1); require_once 'Models/API.php'; require_once 'Models/ConDB.php'; require_once 'Models/ManageToken.php'; use Twilio\Rest\Client; define("APP_TITLE","Merchant"); class MyAPI extends API { protected $User; private $con; private $chatMessagePageSize = 30; private $androidUrl = 'https://fcm.googleapis.com/fcm/send'; private $androidApiKey = 'AAAArtP6bQs:APA91bEiAhv2fVPFYG-6U0Qaqr9mBPYj4k62JmSw67hlLeZaSj6x3Mw4OZ3sg1rgs87Cz0AaSJkt3KM6U6xsz14GKY_Jp_tdgob_eOsxYeso2XRAx8fO-i_rDwTpJPB4Snwr2pTpdjNj'; /* Development -- ssl://gateway.sandbox.push.apple.com:2195 Production -- ssl://gateway.push.apple.com:2195 */ public function __construct($request_uri, $postData, $origin) { parent::__construct($request_uri, $postData); date_default_timezone_set('Asia/Singapore'); $this->con = new ConDB(); $time = "set time_zone = '+08:00'"; $this->con->db->query($time); //mysql_query($time, $this->db->conn); } //protected function sendNotifications($deviceId,$device_type){ protected function sendNotifications($deviceId,$orderId,$device_type,$userDeviceToken_id ){ if(!empty($deviceId) && !empty($orderId)) { // $gcmTokenData = "select token_id from sendgcmdata where device_id ='".$deviceId."' and device_type ='". $device_type."'"; $result = $this->con->db->query($gcmTokenData); //if($result->num_rows>0){ // $token = $result->fetch_assoc(); $orderQry = "select * from orders where order_id ='". $orderId."' and device_id ='". $deviceId."'"; $orderResult = $this->con->db->query($orderQry)->fetch_assoc(); $title ="Order Status"; $message="Order id $orderId dispatched successfully."; //$message =["event_id" => 10001,"order_id" => $orderId,"dispatch_time" => date("d-m-Y h:i:s"),"deviceId" =>$deviceId ]; $args=['token'=>$userDeviceToken_id,'orderID'=>$orderId,'title'=>$title,'message'=>$message,'status'=>'Success']; $requestlog = json_encode($args); $payloadQuery = "INSERT INTO `payload` (requestdata,responsedata,type,created_on ) VALUES ('".$requestlog."',NULL,'".pushNotification."',NOW()) "; $this->con->db->query($payloadQuery); /* echo "<pre>"; print_r([$userDeviceToken_id,$device_type,$title, $message,__FILE__,__LINE__]); echo "</pre>"; die(); */ return $this->_sendAndroidPush($userDeviceToken_id,$device_type,$title, $message); exit; /* }else{ $title ="Order id $orderId Status"; $message="Due to Technical issue Order not able to dispatched."; $args=['token'=>$token,'orderID'=>$orderId,'title'=>$title,'message'=>$message,'status'=>'fail']; //$arg=['token'=>'','title'=>$title,'message'=>$message,'status'=>'fail']; $requestlog = json_encode($args); $payloadQuery = "INSERT INTO `payload` (requestdata,responsedata,type,created_on ) VALUES ('".$requestlog."',NULL,'".pushNotification."',NOW()) "; $this->con->db->query($payloadQuery); $updOrder= $this->con->db->query("update orders set state=1, ready_state=1 where order_id=$orderId"); return $this->_sendAndroidPush($token,$title, $message); exit; } */ } // $deviceId ='2a572c1f64a2eb46'; // /* if(!$result = $this->con->db->query($gcmTokenData)){ $dState = 0; }else{ if($res_not->num_rows == 0){ $dState = 0; }else{ $res = $res_not->fetch_assoc(); $dState = $res['state']; } } */ /*if($result = $this->con->db->query($gcmTokenData)){ echo "<pre>"; print_r([$gcmTokenData]); echo "</pre>"; }*/ /* if($dType == 1 && $dState == 1){ $this->_sendAndroidPush($not['device_token'],$not['not_body']); }elseif($dType == 2 && $dState == 1){ $this->_sendApplePush($not['device_token'],$not['not_body']); } */ //email // $this->_sendMail($not['email'],$not['name'],$not['subject'],$not['email_body']); } protected function curl_call($url,$receipt){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_VERBOSE, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $receipt); $response = curl_exec($ch); // $errno = curl_errno($ch); //$errmsg = curl_error($ch); curl_close($ch); } protected function _sendSMS($phone,$body){ $client = new Client($this->twilio_sid,$this->twilio_token); try{ // Use the client to do fun stuff like send text messages! $client->messages->create( // the number you'd like to send the message to $phone, array( // A Twilio phone number you purchased at twilio.com/console 'from' => '+14432193599',//'+18442575528', 'body' => $body // the body of the text message you'd like to send ) ); }catch (Exception $e) { } } protected function _sendApplePush($regId, $message){ $ctx = stream_context_create(); $passphrase = "12345678"; stream_context_set_option($ctx, 'ssl', 'local_cert', 'bc_user_prod.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); $fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); //$regId = $args['token']; //$message = $args['message']; $payload1 =$args['pay']; //if (!$fp) //exit("Failed to connect amarnew: $err $errstr" . PHP_EOL); $payload1 = $message; //echo 'Connected to APNS' . PHP_EOL; // Create the payload body $body['aps'] = array( 'badge' => +1, 'alert' => $message['message'], 'payload' => $payload1, 'sound' => 'default' ); $payload = json_encode($body); $deviceToken = $regId; // Build the binary notification $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; // Send it to the server $result = fwrite($fp, $msg, strlen($msg)); // if (!$result) // echo 'Message not delivered' . PHP_EOL; // else // echo 'Message successfully delivered amar'.$message. PHP_EOL . $result . " " . $regId; // Close the connection to the server fclose($fp); } protected function _sendAndroidPush($tokenId,$device_type,$title, $message){ // $target = $tokenId['token_id']; $target = $tokenId; $fields = array(); $requestedData =[]; // $message =["event_id" => 1000,"order_id" => 1001,"dispatch_time" => "2019-10-06 06:30","mobile" => "9718633725" ]; $fields['priority'] = "high"; if($device_type==1){ $fields['data'] = ["title" => $title,"body" => $message,"sound" => "default"]; // $fields['notification'] = ["title" => $title,"body" => $message,"sound" => "default"]; }else{ $fields['notification'] = ["title" => $title,"body" => $message,"sound" => "default"]; } if (is_array($target)){ $fields['registration_ids'] = $target; } else{ $fields['to'] = $target; } $headers = array( 'Authorization:key='.$this->androidApiKey, 'Content-Type:application/json' ); $requestedData['request']=['requestedPost'=>json_encode($fields),'header'=>$headers,'url'=>$this->androidUrl]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->androidUrl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('FCM Send Error: ' . curl_error($ch)); } $info = curl_getinfo($ch); $requestedData['response']=['response'=>$result,'curlInfo'=>$info]; $requestlog = json_encode($requestedData['request']); $responselog = json_encode($requestedData['response']); $payloadQuery = "INSERT INTO `payload` (requestdata,responsedata,type,created_on ) VALUES ('".$requestlog."','".$responselog."','".curlRequest."',NOW()) "; $this->con->db->query($payloadQuery); curl_close($ch); return $result; } protected function delete_on_fail($table,$where,$value){ $qry = "delete from $table where $where = $value"; $this->con->db->query($qry); } protected function buildBaseString($baseURI, $method, $params) { $r = array(); ksort($params); foreach($params as $key=>$value){ $r[] = "$key=" . rawurlencode($value); } return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); } protected function buildAuthorizationHeader($oauth) { $r = 'Authorization: OAuth '; $values = array(); foreach($oauth as $key=>$value) $values[] = "$key=\"" . rawurlencode($value) . "\""; $r .= implode(', ', $values); return $r; } protected function _getStatusMessage($code, $msg) { return array('code' => $code, 'msg' => $msg); //,'test'=>$test_num); } protected function _createOrUpdateSession($mid, $device_type, $device_id,$device_token) { //$session_token = $this->garbler($device_id); $a=rand(1000,9999); $b=rand(100,999); $c=rand(10000,99999); $d="aD12K6rtZ"; $e="b0bkhER#$"; $salt=($c.$d.$a.$e.$b); $session_token =md5($device_id.$salt); $getExistingSession = "select * from merchant_session where merchant_id like '$mid' and device_id like '$device_id'"; if(!$sessions = $this->con->db->query($getExistingSession)){ $error = "There was an error running the query [" . $this->con->db->error . "]"; $errMsgArr = $this->_getStatusMessage(5, $error); return array('err'=>$errMsgArr); } if ($sessions->num_rows > 0) { $updateSession = "update merchant_session set session_token = '$session_token',device_token = '$device_token',state = 1, modified_dt = NOW() where merchant_id like '$mid' and device_id like '$device_id'"; if(!$this->con->db->query($updateSession)){ $error = "There was an error running the query [" . $this->con->db->error . "]"; $errMsgArr = $this->_getStatusMessage(5, $error); return array('err'=>$errMsgArr); } } else { $insertSession = "insert into merchant_session (merchant_id, device_type, device_id, device_token, session_token,state, created_dt, modified_dt) values ('$mid', '$device_type', '$device_id', '$device_token','$session_token','1', NOW(), NOW())"; if(!$this->con->db->query($insertSession)){ $error = "There was an error running the query [" . $this->con->db->error . "]"; $errMsgArr = $this->_getStatusMessage(5, $error); return array('err'=>$errMsgArr); } } return $session_token; } protected function in_order_items() { $items = $this->con->db->query("select o.order_id,if(o.item_type = 1,(select name from merchant_drinks where id = o.item_id),(select name from merchant_dish where id = o.item_id))as item_name,o.item_id,o.item_type from order_items o"); while($it = $items->fetch_assoc()){ $qry = "update order_items set item_name = \"".$it['item_name']."\" where order_id = \"".$it['order_id']."\" and item_id = \"".$it['item_id']."\" and item_type = \"".$it['item_type']."\""; if(!$this->con->db->query($qry)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } } $errMsgArr = $this->_getStatusMessage(1, "Success"); return array('err'=>$errMsgArr); } protected function login($args){ $email = $args['merchant_email']; $pwd = $args['merchant_password']; $device_id = $args['device_id']; $device_type = $args['device_type']; $device_token = $args['device_token']; $myfile = fopen("login_args_mer.txt", "w"); fwrite($myfile, json_encode($args)); fclose($myfile); if ($email == '' || $pwd == ''||$device_id ==''||$device_token == ''||$device_type == '') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id,m.merchant_logo, m.event_id from merchant m where m.merchant_email = '$email' and m.merchant_password = '$pwd'"; if(!$mers = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($mers->num_rows != 1) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Email or Password"); return array('err'=>$errMsgArr); } else { $mer = $mers->fetch_assoc(); $mid = $mer['merchant_id']; $logo = $mer['merchant_logo']; $event_id = $mer['event_id']; $session = $this->_createOrUpdateSession($mid,$device_type,$device_id,$device_token); if(!$this->con->db->query("update merchant set state = 1 where merchant_id = $mid")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $session = $this->_createOrUpdateSession($mid,$device_type, $device_id,$device_token); $errMsgArr = $this->_getStatusMessage(1, "Login succesful"); return array('err'=>$errMsgArr,"merchant_id"=>$mid,'token'=>$session,'logo'=>$logo,'event_id'=>$event_id); } } protected function close_order($args) { $merchant_id = $args['merchant_id']; $token = $args['merchant_token']; $order_id = $args['order_id']; if ($merchant_id == '' ||$token =='') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$merchant_id' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; if(!$orders = $this->con->db->query("update orders set state=2, ready_state=2 where order_id=$order_id")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server"); // return array( 'err'=>$errMsgArr); } else { $errMsgArr = $this->_getStatusMessage(1, "Success"); } $checkExistingMerchant = "select * from orders where order_id=$order_id"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server"); // return array( 'err'=>$errMsgArr); } /* if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); //return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $uname = $usr['name']; $total = $usr['amount']; $email = $usr['email']; $on = $usr['created_dt']; $service_charge = $usr['service_charge']; $sub_amount = $total-$service_charge; $msg = "$brand has served your order no:".$order_id." on ".$on." at ".$at; $email_body = $this->get_ordc_email_body($order_id); $email_body = str_replace("<<<name>>>",$uname,$email_body); $email_body = str_replace("<<<merchant>>>",$brand,$email_body); $email_body = str_replace("<<<total>>>","Rs ".round($total,2),$email_body); $email_body = str_replace("<<<date_time>>>",$on." ".$at,$email_body); $email_body = str_replace("<<<order_id>>>",$order_id,$email_body); $email_body = str_replace("<<<sub_total>>>","Rs ".round($sub_amount,2),$email_body); $email_body = str_replace("<<<service_charge>>>","Rs ".round($service_charge,2),$email_body); $not = array("user_id"=>$dev['user_id'],"device_state"=>$dev['device_state'],"device_type"=>$dev['device_type'],"device_token"=>$dev['device_token'],"not_body"=>$body,"email"=>$email,"name"=>$uname,"subject"=>"Order served by $brand","email_body"=>$email_body); if(! $this->_sendMail($email,$not['name'],"Order served by $brand",$email_body)) { $errMsgArr = $this->_getStatusMessage(112,"email not send"); // $errMsgArr = $this->_getStatusMessage(1," Order close successfully"); // return array('err'=>$errMsgArr); }else { $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server"); // return array('err'=>$errMsgArr); } } */ return array( 'err'=>$errMsgArr); } } protected function dispatch_order($args) { $merchant_id = $args['merchant_id']; $token = $args['merchant_token']; $order_id = $args['order_id']; $device_type = $userDeviceToken_id=$device_id=""; if(isset($args['device_id']) && !empty($args['device_id'])) { $device_id = $args['device_id']; $gcmTokenData = "select token_id,device_type from sendgcmdata where device_id ='".$device_id."'"; $result = $this->con->db->query($gcmTokenData); if($result->num_rows>0){ $gcmDataResult = $result->fetch_assoc(); $device_type = $gcmDataResult['device_type']; $userDeviceToken_id = $gcmDataResult['token_id']; }else { $errMsgArr = $this->_getStatusMessage(12, "Invalid Data"); return array('err'=>$errMsgArr); } } else { $errMsgArr = $this->_getStatusMessage(12, "Invalid Data"); return array('err'=>$errMsgArr); }; $collectedArgs = ['merchant_id'=>$merchant_id,'merchantToken'=>$token,'order_id'=>$order_id,'device_id'=>$device_id,'device_type'=>$device_type,'userDeviceToken_id'=>$userDeviceToken_id]; $requestlog1 = json_encode($collectedArgs); $payloadQuery1 = "INSERT INTO `payload` (requestdata,responsedata,type,created_on ) VALUES ('".$requestlog1."',NULL,'".dispatch_args."',NOW()) "; $this->con->db->query($payloadQuery1); if ($merchant_id == '' ||$token =='') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$merchant_id' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; if(!$orders = $this->con->db->query("update orders set state=1, ready_state=2 where order_id=$order_id")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server" . "update orders set state=1, ready_state=1 where order_id=$order_id"); return array( 'err'=>$errMsgArr); } $pushNotificationData=[ 'deviceId'=>$device_id, 'orderId'=>$order_id, 'device_type'=>$device_type ]; $this->sendNotifications($device_id,$order_id,$device_type,$userDeviceToken_id); $errMsgArr = $this->_getStatusMessage(1,"Success"); return array('err'=>$errMsgArr); } } protected function get_events_order_history($args) { $merchant_id = $args['merchant_id']; $token = $args['merchant_token']; $event_id = $args['event_id']; if ($merchant_id == '' ||$token =='') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$merchant_id' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; if(!$orders = $this->con->db->query("select o.order_id,o.state,o.name,o.phone,o.email,o.company, o.table_no,o.created_dt,o.amount, ifnull(o.hall_number,'') as hall_number from orders o where o.event_id = $event_id and ( o.state like 2) order by o.created_dt desc")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $order = array(); while($ord = $orders->fetch_assoc()){ $order[] = array("date_time"=>$ord['created_dt'],"user_name"=>$ord['name'],"order_id"=>$ord['order_id'],"table_no"=>$ord['table_no'],"state"=>$ord['state'], "email"=>$ord['email'], "phone"=>$ord['phone'], "company"=>$ord['company'],"amount"=>$ord['amount'], "hall_number"=>$ord['hall_number']); } $errMsgArr = $this->_getStatusMessage(1,"Success"); return array('err'=>$errMsgArr,'orders'=>$order); } } protected function get_my_orders($args) { $merchant_id = $args['merchant_id']; $token = $args['merchant_token']; $event_id = $args['event_id']; $order = array(); $today =date('Y-m-d'); if ($merchant_id == '' ||$token =='') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$merchant_id' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; if(!$orders = $this->con->db->query("select o.order_id,e.event_id,e.start_dt,e.end_dt,o.state,o.name,o.phone,o.email,o.company, o.table_no,o.created_dt, o.amount, ifnull(o.hall_number,'') as hall_number,o.device_id from orders o left join event e on o.event_id = e.event_id where date(e.end_dt)>=date('".$today."') and o.state < 2 order by o.created_dt desc")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $order = array(); while($ord = $orders->fetch_assoc()){ $order[] = array("date_time"=>$ord['created_dt'],"user_name"=>$ord['name'],"order_id"=>$ord['order_id'],"table_no"=>$ord['table_no'],"state"=>$ord['state'], "email"=>$ord['email'], "phone"=>$ord['phone'], "company"=>$ord['company'],"amount"=>$ord['amount'], "hall_number"=>$ord['hall_number'], "device_id"=>$ord['device_id']); } $errMsgArr = $this->_getStatusMessage(1,"Success"); return array('err'=>$errMsgArr,'orders'=>$order); } } protected function get_order_details($args) { $merchant_id = $args['merchant_id']; $token = $args['merchant_token']; $order_id = $args['order_id']; if ($merchant_id == '' ||$token ==''||$order_id == '') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$merchant_id' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; $order = array(); if(!$orders = $this->con->db->query("select o.order_id,o.table_no, o.state from orders o where o.order_id = '$order_id'")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $ordr = $orders->fetch_assoc(); $order = array("table_no"=>$ordr['table_no'], "order_state"=>$ordr['state'],"order_id"=>$ordr['order_id']); $dqry = "select o.item_id,o.item_name as name,o.quantity, o.brand_id, b.brand_name from order_items o left join brand b on b.brand_id=o.brand_id where o.order_id = '$order_id' "; if(!$drinks = $this->con->db->query($dqry)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $drink = array(); while($drnk = $drinks->fetch_assoc()){ $drink[] = array("name"=>$drnk['name'],"item_id"=>$drnk['item_id'],"quantity"=>$drnk['quantity'],"bc_type"=>$drnk['bc_preferred'], "brand"=>$drnk['brand_name']); } if(!$orders = $this->con->db->query("update orders set ready_state=1 where order_id=$order_id and ready_state=0")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server" . "update orders set state=1, ready_state=1 where order_id=$order_id");return array( 'err'=>$errMsgArr); } $errMsgArr = $this->_getStatusMessage(1,"Success"); return array('err'=>$errMsgArr,'order'=>$order,'items'=>$drink); } } protected function logout($args){ $email = $args['merchant_email']; $token = $args['merchant_token']; if ($email == '' || $token == '') { $errMsgArr = $this->_getStatusMessage(10, "Invalid Inputs"); return array('err'=>$errMsgArr); } $checkExistingMerchant = "select m.merchant_id from merchant_booze m left join merchant_session s on s.merchant_id = m.merchant_id where m.merchant_id like '$email' and s.session_token = '$token'"; if(!$user = $this->con->db->query($checkExistingMerchant)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if ($user->num_rows <= 0) { $errMsgArr = $this->_getStatusMessage(2, "Invalid Credentials"); return array('err'=>$errMsgArr); } else { $usr = $user->fetch_assoc(); $mid = $usr['merchant_id']; if(!$inSess = $this->con->db->query("select merchant_id from merchant_session where merchant_id = '$mid' and state = 1 and session_token not like '$token'")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } if($inSess->num_rows == 0){ $logout = "update merchant_booze set state = 4 where merchant_id like $mid"; if(!$this->con->db->query($logout)){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } } if(!$this->con->db->query("update merchant_session set state = 4,session_token = '' where merchant_id = '$mid' and session_token = '$token'")){ $errMsgArr = $this->_getStatusMessage(11, "Trouble Connecting to the server");return array( 'err'=>$errMsgArr); } $errMsgArr = $this->_getStatusMessage(1, "Logout succesful"); return array('err'=>$errMsgArr); } } } if (!array_key_exists('HTTP_ORIGIN', $_SERVER)) { $_SERVER['HTTP_ORIGIN'] = $_SERVER['SERVER_NAME']; } try { $API = new MyAPI($_SERVER['REQUEST_URI'], $_REQUEST, $_SERVER['HTTP_ORIGIN']); echo $API->processAPI(); } catch (Exception $e) { echo json_encode(Array('error' => $e->getMessage())); }