From f60c20b30b2cbb910ffc73c8e8d0c41872e8e95e Mon Sep 17 00:00:00 2001
From: tobin <tobin@techware.in>
Date: Wed, 13 Nov 2019 17:00:57 +0530
Subject: [PATCH] t : payment changes

---
 application/controllers/Api.php         | 29 +++++++++++++++--------------
 application/models/Webservice_model.php | 44 ++++++++++++++++++++++++++++++++++----------
 2 files changed, 49 insertions(+), 24 deletions(-)

diff --git a/application/controllers/Api.php b/application/controllers/Api.php
index 6664b47..898cb5c 100644
--- a/application/controllers/Api.php
+++ b/application/controllers/Api.php
@@ -339,7 +339,7 @@ class Api extends CI_Controller {
   }
 
   public function paymentGateway($amount='0',$last_id='0',$event_id='0',$booking_id='0',
-                                 $custData=array(),$cardData=array()){
+                                 $custData=array(),$cardData=''){
     $customerName = array();
     if(isset($custData->name) && !empty($custData->name)){
       $customerName = explode(' ',$custData->name);
@@ -353,13 +353,18 @@ class Api extends CI_Controller {
     $add1     = $add2 = $city = $state = 'Saudi Arabia';
     $pincode  = '61961';
 
-    $noCard    = 0;
     $saveCard  = 1;
     $savedCard = 0;
+    $cvv = $tocken = $cardNo = $holder = $cardType = $expMonth = $expYear = '';
     if(!empty($cardData)){
-      if(isset($cardData['cvv']) && !empty($cardData['cvv']) && 
-         isset($cardData['tocken']) && !empty($cardData['tocken'])){
-        $savedCard = 1;
+      $cardData = $this->encrypt($cardData,$this->local_key,$this->local_iv);
+      if(empty($cardData)){
+        redirect($redUrl.'failure');
+      } else if (isset($cardData['cvv']) && !empty($cardData['cvv']) && 
+                 isset($cardData['tocken']) && !empty($cardData['tocken'])){
+        $cvv        = $cardData['cvv'];
+        $tocken     = $cardData['tocken'];
+        $savedCard  = 1;
       } else if(isset($cardData['cvv']) && !empty($cardData['cvv']) || 
                 isset($cardData['cardType']) && !empty($cardData['cardType']) || 
                 isset($cardData['cardNumber']) && !empty($cardData['cardNumber']) || 
@@ -372,12 +377,12 @@ class Api extends CI_Controller {
         $cardType = $cardData['cardType'];
         $expMonth = substr($cardData['expMonthYear'],0,2);
         $expYear  = '20'.substr($cardData['expMonthYear'],2,2);
-        $saveCard = (isset($cardData['saveCard'])&&!empty($cardData['saveCard'])&&$cardData['saveCard']==0)?0:1;
+        $saveCard = (isset($cardData['saveCard']) && $cardData['saveCard'] == 0)?0:1;
       } else {
-        $noCard = 1;
+        redirect($redUrl.'failure');
       }
     } else {
-      $noCard = 1;
+      redirect($redUrl.'failure');
     }
 
     $failureUrl = base_url('Api/paymentFailureUrl');
@@ -390,13 +395,9 @@ class Api extends CI_Controller {
     $pText .= '111111111111|'.$f_Name.'|'.$l_Name.'|'.$add1.'|'.$add2.'|'.$city.'|'.$state.'|'.$pincode.
               '|SA|'.$phone.'|34|344|34355344||';
     if($savedCard == 1){
-      $pText .= '00010000001|'.$cardData['cvv'].'|'.$cardData['tocken'].'||';
+      $pText .= '00010000001|'.$cvv.'|'.$tocken.'||';
     } else {
-      if($noCard == 0){
-        $pText .= '11111100000|'.$cardNo.'|'.$expMonth.'|'.$expYear.'|'.$cvv.'|'.$holder.'|'.$cardType.'||';
-      } else {
-        // Provide Card Details Manually in Bayanpay Payment gateway.
-      }
+      $pText .='11111100000|'.$cardNo.'|'.$expMonth.'|'.$expYear.'|'.$cvv.'|'.$holder.'|'.$cardType.'||';
     }
     $pText .= '1110000|'.$last_id.'|'.$event_id.'|'.$booking_id.'||';
     if($saveCard == 1){
diff --git a/application/models/Webservice_model.php b/application/models/Webservice_model.php
index 8882a58..cb38683 100644
--- a/application/models/Webservice_model.php
+++ b/application/models/Webservice_model.php
@@ -1813,29 +1813,53 @@ class Webservice_model extends CI_Model {
 
 	public function sync_contacts($data){
 		$user_id = $this->auth_token_get($data['auth_token']);
-		$respArr = array('status'=>0,'code'=>'918','message'=>'Data Missing');
 		if(empty($data)){
-			return $respArr;	
+			return array('status'=>0,'code'=>'918','message'=>'Data Missing');
 		}
 		$phNumbers = '';
 		foreach($data['contacts'] AS $key => $number) {
 			$number = preg_replace('/\D/', '', $number);
-			$eCond = ($key != count($data['contacts'])-1)?' OR ':'';
+			$cond  = " AND CUST.enable_chat='1' AND USR.status='1'";
+			$eCond = ($key != count($data['contacts'])-1)?') OR ':')';
+			$eCond = $cond.$eCond;
 			if(strlen($number) > 9){
-				$phNumbers .= " phone LIKE '%".substr($number, strlen($number)-9)."' ".$eCond;
+				$phNumbers .= " (CUST.phone LIKE '%".substr($number, strlen($number)-9)."' ".$eCond;
 			} else {
-				$phNumbers .= " phone LIKE '%".$number."' ".$eCond;
+				$phNumbers .= " (CUST.phone LIKE '%".$number."' ".$eCond;
 			}
 		}
+		if(empty($phNumbers)){
+			return array('status'=>0,'code'=>'919','message'=>'Invalid Data');
+		}
+
+		$sql = "SELECT CUST.customer_id FROM customer AS CUST 
+			    INNER JOIN users AS USR ON (USR.id=CUST.customer_id)
+			    WHERE $phNumbers";
+		$custIds = $this->db->query($sql)->result_array();
+		if(empty($custIds)){
+			return array('status'=>0,'code'=>'919','message'=>'No Data Found');
+		}
+		$user_ids = '';
+		foreach ($custIds AS $id) {
+			$user_ids = $id['customer_id'].',';
+		}
+		$user_ids = trim($user_ids,',');
+
 		$result = $this->db->query("SELECT CUST.customer_id,CUST.name,CUST.phone,CUST.profile_image,
 										   CUST.profile_image_qr,CHT.type AS friend_status 
 								    FROM customer AS CUST 
 								    LEFT JOIN chats AS CHT ON ((CUST.customer_id=CHT.from_user OR CUST.customer_id=CHT.to_user) AND CHT.type=1)
-								    WHERE ($phNumbers) AND CUST.enable_chat='1' AND 
-								          customer_id NOT IN (SELECT from_user FROM chats WHERE (from_user=$user_id AND type='2') OR (to_user =$user_id AND type='2')) AND 
-								          customer_id NOT IN (SELECT to_user FROM chats WHERE (from_user=$user_id AND type='2') OR (to_user =$user_id AND type='2'))
-						            GROUP BY CUST.customer_id");
-		
+								    WHERE CUST.customer_id IN ($user_ids) AND 
+								          customer_id NOT IN 
+								          	(SELECT from_user FROM chats 
+								          	 WHERE (from_user=$user_id AND type='2') OR 
+								          	 	   (to_user=$user_id AND type='2')) 
+						          	 	  AND 
+								          customer_id NOT IN 
+								          	(SELECT to_user FROM chats 
+							          		WHERE (from_user=$user_id AND type='2') OR 
+							          			  (to_user=$user_id AND type='2'))
+						            GROUP BY CUST.customer_id");		
 		$respArr['status'] = 1;	
 		$respArr['data'] = (!empty($result) && !empty($result=$result->result_array()))?$result:[];
 		return $respArr;
--
libgit2 0.27.1