request = \Config\Services::request(); } public function completeBVNVerify(){ $data = $this->request->getPost(); if ($data['bvn'] != '' && $data['verification_id'] !='' && $data['otp'] !='' ) { if ( $data['otp'] !='12345'){ $response = [ 'message' => 'Invalid account or OTP', 'call_return' => '0', 'customer'=> [], "token" =>'' ]; return $this->respond($response, 200); } $customer = []; // we need OTP verified here to continue $sqlC = "SELECT * FROM bvn_checks WHERE bvn ='".$data['bvn']."' AND uid='".$data['verification_id']."'"; $query = $this->db->query($sqlC); $results = $query->getResultArray(); if ( count($results) > 0 ){ $sqlM = "SELECT * FROM customers WHERE bvn = '".$data['bvn']."' "; $qu0 = $this->db->query($sqlM); $customer = $qu0->getResultArray(); if ( count( $customer) == 0 ){ // lets create this USER $udata = [ 'bvn' => $data['bvn'], 'firstname' =>'firstname-'.rand(1,1000), 'lastname' => 'lastname-'.rand(1,1000) ]; $customer = $this->insert_db('customers',$udata); } } $final_out = $data; $key = getenv('JWT_SECRET'); $iat = time(); // current timestamp value $exp = $iat + 3600; $payload = array( "iss" => "Issuer of the JWT", "aud" => "Audience that the JWT", "sub" => "Subject of the JWT", "iat" => $iat, //Time the JWT issued at "exp" => $exp, // Expiration time of token "user_detail" => $final_out, ); $token = JWT::encode($payload, $key, 'HS256'); $response = [ 'message' => 'Account Verified', 'call_return' => '100', 'customer'=> $customer, "token" =>$token ]; return $this->respond($response, 200); } else { $response = [ 'message' => 'Invalid account found', 'call_return' => '100', 'token' => '' ]; return $this->fail($response, 409); } } /* "uid" => "3119b744-42ad-4834-bb83-b737588754ca", "firstname"=>'Firstname', "lastname"=>'lastname', "last_login"=> "2024-04-26 13:35:19.750027", "test" => $results, */ public function startBVNVerify() { $data = $this->request->getPost(); if ($data['bvn'] != '') { $bvnData = $this->APIcall("POST", "http://10.10.10.48:6332/api/verify/bvn", json_encode($data)); $udata = [ 'bvn' => $data['bvn'] ]; $addedData = $this->insert_db('bvn_checks',$udata); if( $addedData["uid"] ==''){ $response = [ 'message' => 'Failure', 'call_return' => '100', 'token' => '', 'test_bvn' => $bvnData ]; return $this->fail($response, 500); } $response = [ 'message' => 'Verification text sent to user', 'call_return' => '100', 'verification_id' => $addedData["uid"], 'status' => $bvnData["res"]["status"], 'test_bvn' => $bvnData["res"]["data"] ]; return $this->respond($response, 200); } else { $response = [ 'message' => 'Failure', 'call_return' => '100', 'token' => '' ]; return $this->fail($response, 409); } //return json_encode( $response ); } }