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) ]; $udata = [ 'bvn' => $data['bvn'], 'firstname' => $results[0]["firstname"], 'lastname' => $results[0]["lastname"], ]; $customer = $this->insert_db('customers',$udata); /** --- */ $sqlM = "SELECT * FROM customers WHERE bvn = '".$data['bvn']."' "; $qu0 = $this->db->query($sqlM); $customer = $qu0->getResultArray(); } } $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); } /* *| Type | Collation | Nullable | Default -------------+-----------------------------+-----------+----------+---------------------------------------- id | integer | | not null | nextval('bvn_checks_id_seq'::regclass) uid | uuid | | | uuid_generate_v4() bvn | character varying(15) | | not null | status | integer | | | 1 added | timestamp without time zone | | | now() updated | timestamp without time zone | | | now() firstname | character varying(35) | | | lastname | character varying(35) | | | middlename | character varying(35) | | | gender | character varying(5) | | | birthdate | timestamp without time zone | | | phone | character varying(35) | | | nationality | character varying(15) | | | Indexes: "bvn_checks_id_key" UNIQUE CONSTRAINT, btree (id) "bvn": "10000000001", "firstname": "John", "lastname": "Doe", "middlename": "Favor", "phone": "080000000001", "birthdate": "1944-04-04", "gender": "m", "nationality": "Nigerian", */ $bvn = $data['bvn']; $firstname = $bvnData["res"]["data"]["firstname"]; $lastname = $bvnData["res"]["data"]["lastname"]; $middlename = $bvnData["res"]["data"]["middlename"]; $phone = $bvnData["res"]["data"]["phone"]; $birthdate = $bvnData["res"]["data"]["birthdate"]; $gender = $bvnData["res"]["data"]["gender"]; $nationality = $bvnData["res"]["data"]["nationality"]; $sqlUpdate = "UPDATE bvn_checks SET firstname ='$firstname', lastname='$lastname', middlename='$middlename' , phone='$phone' , birthdate='$birthdate' , gender='$gender' , nationality='$nationality' WHERE bvn = '$bvn' "; $query = $this->db->query($sqlUpdate); $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 ); } }