ok
Direktori : /home2/selectio/www/3-idiots/app/CPU/ |
Current File : //home2/selectio/www/3-idiots/app/CPU/sms_module.php |
<?php namespace App\CPU; use App\Model\BusinessSetting; use Illuminate\Support\Facades\Config; use Nexmo\Laravel\Facade\Nexmo; use Twilio\Rest\Client; class SMS_module { public static function send($receiver, $otp) { $config = self::get_settings('twilio_sms'); if (isset($config) && $config['status'] == 1) { $response = self::twilio($receiver, $otp); return $response; } $config = self::get_settings('nexmo_sms'); if (isset($config) && $config['status'] == 1) { $response = self::nexmo($receiver, $otp); return $response; } $config = self::get_settings('2factor_sms'); if (isset($config) && $config['status'] == 1) { $response = self::two_factor($receiver, $otp); return $response; } $config = self::get_settings('msg91_sms'); if (isset($config) && $config['status'] == 1) { $response = self::msg_91($receiver, $otp); return $response; } $config = self::get_settings('releans_sms'); if (isset($config) && $config['status'] == 1) { $response = self::releans($receiver, $otp); return $response; } return 'not_found'; } public static function twilio($receiver, $otp) { $config = self::get_settings('twilio_sms'); $response = 'error'; if (isset($config) && $config['status'] == 1) { $message = str_replace("#OTP#", $otp, $config['otp_template']); $sid = $config['sid']; $token = $config['token']; try { $twilio = new Client($sid, $token); $twilio->messages ->create($receiver, // to array( "messagingServiceSid" => $config['messaging_service_sid'], "body" => $message ) ); $response = 'success'; } catch (\Exception $exception) { $response = 'error'; } } return $response; } public static function nexmo($receiver, $otp) { $sms_nexmo = self::get_settings('nexmo_sms'); $response = 'error'; if (isset($sms_nexmo) && $sms_nexmo['status'] == 1) { $message = str_replace("#OTP#", $otp, $sms_nexmo['otp_template']); try { $config = [ 'api_key' => $sms_nexmo['api_key'], 'api_secret' => $sms_nexmo['api_secret'], 'signature_secret' => '', 'private_key' => '', 'application_id' => '', 'app' => ['name' => '', 'version' => ''], 'http_client' => '' ]; Config::set('nexmo', $config); Nexmo::message()->send([ 'to' => $receiver, 'from' => $sms_nexmo['from'], 'text' => $message ]); $response = 'success'; } catch (\Exception $exception) { $response = 'error'; } } return $response; } public static function two_factor($receiver, $otp) { $config = self::get_settings('2factor_sms'); $response = 'error'; if (isset($config) && $config['status'] == 1) { $api_key = $config['api_key']; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://2factor.in/API/V1/" . $api_key . "/SMS/" . $receiver . "/" . $otp . "", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if (!$err) { $response = 'success'; } else { $response = 'error'; } } return $response; } public static function msg_91($receiver, $otp) { $config = self::get_settings('msg91_sms'); $response = 'error'; if (isset($config) && $config['status'] == 1) { $receiver = str_replace("+", "", $receiver); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.msg91.com/api/v5/otp?template_id=" . $config['template_id'] . "&mobile=" . $receiver . "&authkey=" . $config['authkey'] . "", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_POSTFIELDS => "{\"OTP\":\"$otp\"}", CURLOPT_HTTPHEADER => array( "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if (!$err) { $response = 'success'; } else { $response = 'error'; } } return $response; } public static function releans($receiver, $otp) { $config = self::get_settings('releans_sms'); $response = 'error'; if (isset($config) && $config['status'] == 1) { $curl = curl_init(); $from = $config['from']; $to = $receiver; $message = str_replace("#OTP#", $otp, $config['otp_template']); try { curl_setopt_array($curl, array( CURLOPT_URL => "https://api.releans.com/v2/message", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "sender=$from&mobile=$to&content=$message", CURLOPT_HTTPHEADER => array( "Authorization: Bearer ".$config['api_key'] ), )); $response = curl_exec($curl); curl_close($curl); $response = 'success'; } catch (\Exception $exception) { $response = 'error'; } } return $response; } public static function get_settings($name) { $config = null; $data = BusinessSetting::where(['type' => $name])->first(); if (isset($data)) { $config = json_decode($data['value'], true); if (is_null($config)) { $config = $data['value']; } } return $config; } }