<?php

namespace backend\components;

use Exception;
use Yii;
use yii\base\Component;

class DigiSms extends Component
{

	var $host;
	var $port; /*
	* Username that is to be used for submission */
	var $strUserName; /*
	* password that is to be used along with username
	*/
	var
		$strPassword; /*
	* DigiSms Id to be used for submitting the message
	*/
	var
		$strSender; /*
	* Message content that is to be transmitted */
	var $strMessage; /*
	* Mobile No is to be transmitted. */
	var
		$strMobile; /*
	* What type of the message that is to be sent * <ul>
	* <li>0:means plain text</li>
	* <li>1:means flash</li>
	* <li>2:means Unicode (Message content should be in Hex)</li>
	* <li>6:means Unicode Flash (Message content should be in Hex)</li>
	* </ul> */
	var $strMessageType;
	/*
	* Require DLR or not * <ul>
	* <li>0:means DLR is not Required</li> * <li>1:means DLR is Required</li>
	* </ul>
	*/
	var $strDlr;
	var $strTemplate;
	var $strentity_id;
	private function sms__unicode($message)
	{
		$hex1 = '';
		if (function_exists('iconv')) {
			$latin = @iconv('UTF-8', 'ISO-8859-1', $message);
			if (strcmp($latin, $message)) {
				$arr = unpack('H*hex', @iconv('UTF-8', 'UCS- 2BE', $message));
				$hex1 = strtoupper($arr['hex']);
			}
			if ($hex1 == '') {
				$hex2 = '';
				$hex = '';
				for ($i = 0; $i < strlen($message); $i++) {
					$hex = dechex(ord($message[$i]));
					$len = strlen($hex);
					$add = 4 - $len;
					if ($len < 4) {
						for ($j = 0; $j < $add; $j++) {
							$hex = "0" . $hex;
						}
					}
					$hex2 .= $hex;
				}
				return $hex2;
			} else {
				return $hex1;
			}
		} else {
			print 'iconv Function Not Exists !';
		}
	}
	//Constructor..
	public function DigiSmsFn(
		$host,
		$port,
		$username,
		$password,
		$sender,
		$message,
		$mobile,
		$msgtype,
		$dlr,
		$templateVal,
		$entity_id = ''
	) {
		$this->host = $host;
		$this->port = $port;
		$this->strUserName = $username;
		$this->strPassword = $password;
		$this->strSender = $sender;
		$this->strMessage = $message; //URL Encode The Message..
		$this->strMobile = $mobile;
		$this->strMessageType = $msgtype;
		$this->strDlr = $dlr;
		$this->strTemplate = $templateVal;
		$this->strentity_id = $entity_id;
	}
	public function Submit()
	{
		if ($this->strMessageType == "2" || $this->strMessageType == "6") {
			//	http://sms.digimiles.in/bulksms/bulksms?username=di78-rajum&password=digimile&type=0&dlr=1&destination=9916011355&source=ADITYB&message=Your appointment has been confirmed with Mr. Avanish(AEB) at Adityaraj Builders on 2021-05-16 vk. Prashant Dhadke(ADE) 8530637888&entityid=1601100000000013278&tempid=1207162098361059172
			//Call The Function Of String To HEX.
			$this->strMessage = $this->sms__unicode($this->strMessage);
			try {
				//Smpp http Url to send sms.
				$live_url = "http://" . $this->host . ":" . $this->port . "/bulksms/bulksms?username=" . $this->strUserName . "&password=" . $this->strPassword . "&type=" . $this->strMessageType . "&dlr=" . $this->strDlr . "&destination=" . $this->strMobile . "&source=" . $this->strSender . "&message=" . $this->strMessage . "&entityid=1601100000000013278&tempid=" . $this->strTemplate . "";
				exit;
				$parse_url = file($live_url);
				echo $parse_url[0];
			} catch (Exception $e) {
				//echo 'Message:' .$e->getMessage(); 
			}
		} else
			$this->strMessage = urlencode($this->strMessage);
		try {
			//Smpp http Url to send sms.
			$live_url = "http://" . $this->host . ":" .
				$this->port . "/bulksms/bulksms?username=" . $this->strUserName . "&password=" . $this->strPassword . "&type=" . $this->strMessageType . "&dlr=" . $this->strDlr . "&destination=" . $this->strMobile . "&source=" . $this->strSender . "&message=" . $this->strMessage . "&entityid=1601100000000013278&tempid=" . $this->strTemplate . "";
			$parse_url = file($live_url);
			//exit;
			return $parse_url[0];
			//exit;
		} catch (Exception $e) {
			//echo 'Message:' . $e->getMessage();
		}
	}

	public function broadcast()
	{
		if (empty($this->strentity_id)) {
			$get_entity_id = "1501604490000038550";
		} else {
			$get_entity_id = $this->strentity_id;
		}
		//Call The Function Of String To HEX.
		//$this->strMessage = $this->sms__unicode($this->strMessage);
		$this->strMessage = urlencode($this->strMessage);
		try {
			//Smpp http Url to send sms.
			$live_url = "http://" . $this->host . ":" . $this->port . "/bulksms/bulksms?username=" . $this->strUserName . "&password=" . $this->strPassword . "&type=" . $this->strMessageType . "&dlr=" . $this->strDlr . "&destination=" . $this->strMobile . "&source=" . $this->strSender . "&message=" . $this->strMessage . "&entityid=" . $get_entity_id . "&tempid=" . $this->strTemplate . "&tmid=1501604490000038550,1602100000000009244";
			/* echo $live_url;
			exit; */

			$parse_url = file($live_url);
			$sms_arr['link'] = $live_url;
			$sms_arr['response'] = $parse_url;
			return $sms_arr;
			/* var_dump($parse_url);
			exit;
			echo $parse_url[0]; */
		} catch (Exception $e) {
			/* echo 'Message:' . $e->getMessage();
			exit; */
		}
	}
}
//Call The Constructor. DigiSms ($host,$port,$username,$password,$sender,
// $message,$mobile, $msgtype,$dlr) http://sms.digimiles.in/bulksms/bulksms?username=di78-rajum&password=digimile&type=0&dlr=1&destination=7709698888&source=ADITYA&message=Hello
//$obj = new DigiSms("sms.digimiles.in","","di78-rajum","digimile","ADITYA","HelloApi","7709698888","0","1");
//$obj->Submit ();