Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 71 |
CRAP | |
0.00% |
0 / 2578 |
SMSService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 71 |
198470.00 | |
0.00% |
0 / 2578 |
__construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 3 |
|||
__clone | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
getInstance | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 5 |
|||
searchSMSLog | |
0.00% |
0 / 1 |
600.00 | |
0.00% |
0 / 106 |
|||
createSMSLog | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 14 |
|||
getSMSProviderDetails | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 47 |
|||
getSMSProviderDetailsByModuleId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 26 |
|||
getSMSProviderAttributeValue | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 13 |
|||
parseAPIResponse | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 20 |
|||
processCreatelogSMS | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
sendSMS | |
0.00% |
0 / 1 |
3782.00 | |
0.00% |
0 / 195 |
|||
sendSMSViaRitsGateway | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 34 |
|||
sendSMSViaXPRESSSMS | |
0.00% |
0 / 1 |
306.00 | |
0.00% |
0 / 81 |
|||
sendSMSViaGLOZNET | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 22 |
|||
sendSMSViaTECHSOL | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 31 |
|||
sendSMSViaBHASHSMS | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 39 |
|||
sendSMSViaZORZACORP | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 33 |
|||
sendSMSViaMithra | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 33 |
|||
sendSMSViaBULKSMS | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 51 |
|||
sendSMSViaSCHOOLSERVESMS | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 52 |
|||
sendSMSViaSCHOOLSERVESMSV1_3 | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaMYSMSMANTRA | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 32 |
|||
sendSMSViaSMSGUPSHUP | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 53 |
|||
sendSMSViaMOBTEXTING | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 32 |
|||
sendSMSViaSMSCOUNTRY | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 48 |
|||
sendSMSViaSMSAVEON | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 33 |
|||
sendSMSViaAastha | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 46 |
|||
sendSMSViaAventsms | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 34 |
|||
sendSMSViaHindustanSoft | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaBULKSMSGREENADS | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaSAPTELESERVICES | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 48 |
|||
sendSMSViaFastSMS | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 36 |
|||
sendSMSViaBlessSMS | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 39 |
|||
sendSMSViaMoplet | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 37 |
|||
sendSMSViaRefined | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaPRPSMS | |
0.00% |
0 / 1 |
90.00 | |
0.00% |
0 / 41 |
|||
sendSMSViaMERABT | |
0.00% |
0 / 1 |
72.00 | |
0.00% |
0 / 57 |
|||
sendSMSViaSuperSMSIdea | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 36 |
|||
sendSMSViaRubySoft | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 37 |
|||
sendSMSViaSMSServer | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 31 |
|||
sendSMSViaBsnlServer | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 31 |
|||
sendSMSViaMdsMedia | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaExtremaa | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 32 |
|||
sendSMSViaSMSU | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 30 |
|||
sendSMSViaTheParentAlert | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 37 |
|||
sendSMSViaKalerya | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
sendSMSViaRoundSms | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 24 |
|||
sendSMSViaBulkSmsCochin | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 33 |
|||
sendSMSFirstDial | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 36 |
|||
sendSMSAlert | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 29 |
|||
sendSMSSAC | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 29 |
|||
sendSMSViaSagarHosting | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 37 |
|||
sendSMSViaMTALKS | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 34 |
|||
sendSMSViaSKYPIXELS | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 36 |
|||
sendSMSViaICECUBE | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 33 |
|||
sendSMSViaTXTLOCAL | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 21 |
|||
sendSMSSANGAMAM | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 32 |
|||
sendSMSMsg91 | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 33 |
|||
use_getleadSMS | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 39 |
|||
use_getSMSBITS | |
0.00% |
0 / 1 |
72.00 | |
0.00% |
0 / 41 |
|||
use_getSMSAASTHA | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 38 |
|||
use_getDATAGENIT | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 36 |
|||
sendSMSViaINSTAALERT | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 33 |
|||
sendSMSViaADLINKS | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 36 |
|||
SendSMSViaCLARETCLG | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 34 |
|||
sendSMSViaMySmsBasket | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 40 |
|||
sendSMSViaEASYWAYSMS | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 38 |
|||
sendSMSViaMdsSend | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 35 |
|||
callSendSMSAPIPost | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 6 |
|||
callSendSMSAPIGet | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 8 |
|||
validateSMSRequest | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 14 |
<?php | |
namespace com\linways\core\ams\professional\service; | |
use com\linways\base\dto\sms\SMS; | |
use com\linways\base\exception\SMSException; | |
use com\linways\core\ams\professional\exception\ProfessionalException; | |
use com\linways\base\dto\sms\SMSProvider; | |
use com\linways\core\ams\professional\mapper\SMSServiceMapper; | |
use Unirest\Request\Body; | |
use Unirest\Request; | |
use com\linways\base\dto\sms\SMSResponse; | |
use com\linways\core\ams\professional\dto\SMSLog; | |
use com\linways\core\ams\professional\response\SearchSMSLogResp; | |
use com\linways\core\ams\professional\request\SearchSMSLogReq; | |
class SMSService extends BaseService | |
{ | |
// /Condition 1 - Presence of a static member variable | |
private static $_instance = null; | |
private $mapper = []; | |
// /Condition 2 - Locked down the constructor | |
private function __construct() | |
{ | |
$this->mapper = SMSServiceMapper::getInstance()->getMapper(); | |
// $GLOBALS['ProviderDetails']; | |
} | |
// Prevent any oustide instantiation of this class | |
// /Condition 3 - Prevent any object or instance of that class to be cloned | |
private function __clone() | |
{} | |
// Prevent any copy of this object | |
// /Condition 4 - Have a single globally accessible static method | |
public static function getInstance() | |
{ | |
if (! is_object(self::$_instance)) // or if( is_null(self::$_instance) ) or if( self::$_instance == null ) | |
self::$_instance = new self(); | |
return self::$_instance; | |
} | |
/** | |
* Method for search sms log | |
* @param SearchSMSLogReq $searchSMSLogReq | |
* @throws ProfessionalException | |
* @return \com\linways\core\ams\professional\response\SearchSMSLogResp | |
*/ | |
public function searchSMSLog(SearchSMSLogReq $searchSMSLogReq) | |
{ | |
$searchSMSLogReq = $this->realEscapeObject($searchSMSLogReq); | |
$response = new SearchSMSLogResp(); | |
$sql = "Select sl.id, | |
sl.context, | |
sl.createdDate, | |
sl.message, | |
sl.mobileNos, | |
sl.module, | |
sl.smsProviderCode, | |
sl.status, | |
sl.statusDetails, | |
sl.createdBy, | |
sl.createdByUserType, | |
(case | |
when sa.staffID is not null then sa.staffName | |
when aa.adminID is not null then aa.adminName | |
when ha.adminID is not null then ha.adminName | |
when ada.adminID is not null then ada.adminName | |
else | |
'SYSTEM' end) as userName | |
from SMSLog sl left join staffaccounts sa on sl.createdBy = sa.staffID and sl.createdByUserType = 'STAFF' | |
left join adminaccount aa on aa.adminID = sl.createdBy and sl.createdByUserType = 'ADMIN' | |
left join hr_admin ha on ha.adminID = sl.createdBy and sl.createdByUserType = 'HR_ADMIN' | |
left join admission_admin ada on ada.adminID = sl.createdBy and sl.createdByUserType = 'ADMISSION_ADMIN' | |
where 1=1 "; | |
$sqlCount = "Select count(sl.id) as totalRecords | |
from SMSLog sl left join staffaccounts sa on sl.createdBy = sa.staffID and sl.createdByUserType = 'STAFF' | |
left join adminaccount aa on aa.adminID = sl.createdBy and sl.createdByUserType = 'ADMIN' | |
left join hr_admin ha on ha.adminID = sl.createdBy and sl.createdByUserType = 'HR_ADMIN' | |
left join admission_admin ada on ada.adminID = sl.createdBy and sl.createdByUserType = 'ADMISSION_ADMIN' | |
where 1=1 "; | |
$criteria = ''; | |
$sortOrder = ""; | |
$limit = ''; | |
try { | |
if (! empty($searchSMSLogReq)) { | |
if (! empty($searchSMSLogReq->module)) { | |
$criteria .= " AND module = '$searchSMSLogReq->module'"; | |
} | |
if (! empty($searchSMSLogReq->context)) { | |
$criteria .= " AND context = '$searchSMSLogReq->context'"; | |
} | |
if (! empty($searchSMSLogReq->message)) { | |
$criteria .= " AND message like '%$searchSMSLogReq->message%'"; | |
} | |
if (! empty($searchSMSLogReq->mobileNos)) { | |
$criteria .= " AND mobileNos like '%$searchSMSLogReq->mobileNos%'"; | |
} | |
if (! empty($searchSMSLogReq->smsProviderCode)) { | |
$criteria .= " AND smsProviderCode = '$searchSMSLogReq->smsProviderCode'"; | |
} | |
if (! empty($searchSMSLogReq->startDate) && ! empty($searchSMSLogReq->endDate)) { | |
$criteria .= " AND sl.createdDate BETWEEN '$searchSMSLogReq->startDate' AND '$searchSMSLogReq->endDate'"; | |
} | |
if (! empty($searchSMSLogReq->startDate) && empty($searchSMSLogReq->endDate)) { | |
$criteria .= " AND sl.createdDate >= '$searchSMSLogReq->startDate' "; | |
} | |
if (! empty($searchSMSLogReq->endDate) && empty($searchSMSLogReq->startDate)) { | |
$criteria .= " AND sl.createdDate <= '$searchSMSLogReq->endDate' "; | |
} | |
if (! empty($searchSMSLogReq->id)) { | |
$criteria .= " AND sl.id = '$searchSMSLogReq->id' "; | |
} | |
if (! empty($searchSMSLogReq->status)) { | |
$criteria .= " AND status = '$searchSMSLogReq->status'"; | |
} | |
if (! empty($searchSMSLogReq->statusDetails)) { | |
$criteria .= " AND statusDetails like '%$searchSMSLogReq->statusDetails%'"; | |
} | |
if (! empty($searchSMSLogReq->userType) && ! empty($searchSMSLogReq->userName)) { | |
$criteria .= " AND (case | |
when sa.staffID is not null then sa.staffName | |
when aa.adminID is not null then aa.adminName | |
when ha.adminID is not null then ha.adminName | |
when ada.adminID is not null then ada.adminName | |
else | |
'SYSTEM' end) like '%$searchSMSLogReq->userName%' AND sl.createdByUserType = '$searchSMSLogReq->userType'"; | |
} | |
if (! empty($searchSMSLogReq->userType) && ! empty($searchSMSLogReq->userId)) { | |
$criteria .= " AND createdBy = '$searchSMSLogReq->userId' AND sl.createdByUserType = '$searchSMSLogReq->userType'"; | |
} | |
if (! empty($searchSMSLogReq->sortBy)) { | |
$sortOrder = " ORDER BY $searchSMSLogReq->sortBy $searchSMSLogReq->sortOrder"; | |
} | |
if (! $searchSMSLogReq->isExport ) { | |
$limit = ' LIMIT ' . $searchSMSLogReq->startIndex . ',' . $searchSMSLogReq->endIndex; | |
} | |
if(!empty($searchSMSLogReq->id)) | |
{ | |
$limit = null; | |
} | |
} else { | |
$sortOrder = " ORDER BY createdDate Desc"; | |
} | |
$sqlCount .= $criteria; | |
$sql .= $criteria; | |
$sql .= $sortOrder; | |
$sql .= $limit; | |
$response->totalRecords = $this->executeQueryForObject($sqlCount)->totalRecords; | |
$response->smsLogs = $this->executeQueryForList($sql,$this->mapper[SMSServiceMapper::SEARCH_SMS_LOG]); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
return $response; | |
} | |
public function createSMSLog(SMSLog $smsLog) | |
{ | |
$smsLog = $this->realEscapeObject($smsLog); | |
$id = null; | |
$mobileNos = empty($smsLog->mobileNos) ? null : implode(",", $smsLog->mobileNos); | |
$sql = "INSERT INTO `SMSLog` (`smsProviderCode`, `module`, `context`, `mobileNos`, `statusDetails`, `message`, `status`, `createdByUserType`, `createdBy`, `updatedBy`, `createdDate`, `updatedDate`, `updatedByUserType`) | |
VALUES ('$smsLog->smsProviderCode', '$smsLog->module', '$smsLog->context', '$mobileNos', '$smsLog->statusDetails', '$smsLog->message', '$smsLog->status', '$smsLog->createdByUserType', '$smsLog->createdBy', '$smsLog->createdBy', now(), now(), '$smsLog->createdByUserType'); | |
"; | |
try { | |
$id = $this->executeQueryForObject($sql, true); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
return $id; | |
} | |
/** | |
* getSMSProviderDetails of given module | |
* | |
* @param string $module | |
* @param string $category | |
* @throws ProfessionalException | |
* @return SMSProvider | |
*/ | |
public function getSMSProviderDetails($module) | |
{ | |
$module = $this->realEscapeString($module); | |
$SMSProvider = null; | |
$sql = "SELECT | |
sp.id as smsProviderId,sp.code as smsProviderCode, | |
sp.name as smsProviderName, | |
sp.url as smsProviderUrl, | |
spa.id as smsProviderAttrId, | |
spa.code as smsProviderAttrCode, | |
spa.name as smsProviderAttrName, | |
spav.id as smsProviderAttrValueId, | |
spav.smsProviderModuleId as smsProviderModuleId, | |
spav.value as smsProviderAttrValue | |
FROM SMSProviderModule spm | |
INNER JOIN SMSProvider sp on sp.id = spm.smsProviderId | |
INNER JOIN SMSProviderAttribute spa on spa.smsProviderId = sp.id | |
LEFT JOIN SMSProviderAttributeValue spav on spav.smsProviderAttributeId = spa.id | |
AND spav.smsProviderModuleId = spm.id | |
WHERE spm.module = '$module'; | |
"; | |
try { | |
$isNothing = $this->executeQueryForObject($sql); | |
if(!$isNothing && $module != "ALL") | |
{ | |
$sql = "SELECT | |
sp.id as smsProviderId,sp.code as smsProviderCode, | |
sp.name as smsProviderName, | |
sp.url as smsProviderUrl, | |
spa.id as smsProviderAttrId, | |
spa.code as smsProviderAttrCode, | |
spa.name as smsProviderAttrName, | |
spav.id as smsProviderAttrValueId, | |
spav.smsProviderModuleId as smsProviderModuleId, | |
spav.value as smsProviderAttrValue | |
FROM SMSProviderModule spm | |
INNER JOIN SMSProvider sp on sp.id = spm.smsProviderId | |
INNER JOIN SMSProviderAttribute spa on spa.smsProviderId = sp.id | |
LEFT JOIN SMSProviderAttributeValue spav on spav.smsProviderAttributeId = spa.id | |
AND spav.smsProviderModuleId = spm.id | |
WHERE spm.module = 'ALL'"; | |
} | |
$SMSProvider = $this->executeQueryForObject($sql, false, $this->mapper[SMSServiceMapper::GET_SMS_PROVIDER_DETAILS]); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
return $SMSProvider; | |
} | |
/** | |
* getSMSProviderDetailsByModuleId of given module id | |
* | |
* @param string $module | |
* @param string $category | |
* @throws ProfessionalException | |
* @return SMSProvider | |
*/ | |
public function getSMSProviderDetailsByModuleId($moduleId) | |
{ | |
$moduleId = $this->realEscapeString($moduleId); | |
$sql = "SELECT | |
sp.id as smsProviderId,sp.code as smsProviderCode, | |
sp.name as smsProviderName, | |
sp.url as smsProviderUrl, | |
spa.id as smsProviderAttrId, | |
spa.code as smsProviderAttrCode, | |
spa.name as smsProviderAttrName, | |
spav.id as smsProviderAttrValueId, | |
spav.smsProviderModuleId as smsProviderModuleId, | |
spav.value as smsProviderAttrValue | |
FROM SMSProviderModule spm | |
INNER JOIN SMSProvider sp on sp.id = spm.paymentGatewayId | |
INNER JOIN SMSProviderAttribute spa on spa.paymentGatewayid = sp.id | |
LEFT JOIN SMSProviderAttributeValue spav on spav.paymentGatewayAttrId = spa.id | |
AND spav.paymentGatewayModuleId = spm.id | |
WHERE spm.id = $moduleId; | |
"; | |
try { | |
$SMSProvider = $this->executeQueryForObject($sql, false, $this->mapper[SMSServiceMapper::GET_SMS_PROVIDER_DETAILS]); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
return $SMSProvider; | |
} | |
/** | |
* get sms provider attribute value from attributelist | |
* | |
* @param string $attributeCode | |
* @param string $attributesList | |
* @return NULL | |
*/ | |
public function getSMSProviderAttributeValue($attributeCode, $attributesList) | |
{ | |
$attributesList = (Array)$attributesList; | |
$attrValue = null; | |
if (! count($attributesList)== 0 && ! empty($attributeCode)) { | |
foreach ($attributesList as $attr) { | |
if ($attr->code == $attributeCode) { | |
$attrValue = empty($attr->smsProviderAttributeValue) ? null : $attr->smsProviderAttributeValue->value; | |
break; | |
} | |
} | |
} | |
return $attrValue; | |
} | |
private function parseAPIResponse($apiResponse) | |
{ | |
$smsResponse = new SMSResponse(); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if (! empty($apiResponse->body->error_code)) { | |
if ($apiResponse->body->error_code == 0) { | |
$smsResponse->success = true; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->errorCode = $apiResponse->body->error_code; | |
$smsResponse->message = $apiResponse->body->error_message; | |
} | |
} else { | |
$smsResponse->success = false; | |
// $smsResponse->errorCode = $apiResponse->body->error_code; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
return $smsResponse; | |
} | |
private function processCreatelogSMS($sms, $smsProviderCode, $module, $status, $statusDetails) | |
{ | |
$smsLog = new SMSLog(); | |
if (! empty($sms)) { | |
$smsLog->context = $sms->context; | |
$smsLog->createdBy = $sms->createdBy; | |
$smsLog->createdByUserType = $sms->createdByUserType; | |
$smsLog->message = $sms->message; | |
$smsLog->mobileNos = $sms->mobileNos; | |
$smsLog->updatedBy = $sms->updatedBy; | |
$smsLog->updatedByUserType = $sms->updatedByUserType; | |
} | |
$smsLog->smsProviderCode = $smsProviderCode; | |
$smsLog->module = $module; | |
$smsLog->statusDetails = is_object($statusDetails) ? json_encode($statusDetails) : $statusDetails; | |
$smsLog->status = $status; | |
return $this->createSMSLog($smsLog); | |
} | |
/** | |
* Method for sending sms | |
* | |
* @param SMS $sms,SMSProvider | |
* $smsProvider | |
*/ | |
public function sendSMS($sms,$templateId= null) | |
{ | |
$smsResponse = null; | |
// $apiResponse = null; | |
// Validate SMS Request | |
$this->validateSMSRequest($sms); | |
$smsProviderCode = null; | |
try { | |
$smsProvider = $this->getSMSProviderDetails($sms->module); | |
if ($smsProvider) { | |
$smsProviderCode = $smsProvider->code; | |
switch ($smsProviderCode) { | |
case SMSProvider::XPRESSSMS: | |
$smsResponse = $this->sendSMSViaXPRESSSMS($sms, $smsProvider,$templateId); | |
break; | |
// TO DO | |
// case "GLOZNET": | |
// $smsResponse = $this->sendSMSViaGLOZNET($sms, $smsProvider); | |
// break; | |
case SMSProvider::TECHSOL: | |
$smsResponse = $this->sendSMSViaTECHSOL($sms, $smsProvider); | |
break; | |
case SMSProvider::BHASHSMS: | |
$smsResponse = $this->sendSMSViaBHASHSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::ZORZACORP: | |
$smsResponse = $this->sendSMSViaZORZACORP($sms, $smsProvider); | |
break; | |
case SMSProvider::MITHRA: | |
$smsResponse = $this->sendSMSViaMithra($sms, $smsProvider); | |
break; | |
case SMSProvider::BULK_SMS: | |
$smsResponse = $this->sendSMSViaBULKSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::SCHOOL_SERVE_SMS: | |
$smsResponse = $this->sendSMSViaSCHOOLSERVESMSV1_3($sms, $smsProvider); | |
break; | |
case SMSProvider::MY_SMS_MANTRA: | |
$smsResponse = $this->sendSMSViaMYSMSMANTRA($sms, $smsProvider); | |
break; | |
case SMSProvider::MOB_TEXTING: | |
$smsResponse = $this->sendSMSViaMOBTEXTING($sms, $smsProvider); | |
break; | |
case SMSProvider::SMS_GUPSHUP: | |
$smsResponse = $this->sendSMSViaSMSGUPSHUP($sms, $smsProvider); | |
break; | |
case SMSProvider::SMS_COUNTRY: | |
$smsResponse = $this->sendSMSViaSMSCOUNTRY($sms, $smsProvider); | |
break; | |
case SMSProvider::SMS_AVEON: | |
$smsResponse = $this->sendSMSViaSMSAVEON($sms, $smsProvider); | |
break; | |
case SMSProvider::BULK_SMS_GREEN_ADS: | |
$smsResponse = $this->sendSMSViaBULKSMSGREENADS($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::AASTHA: | |
$smsResponse = $this->sendSMSViaAastha($sms, $smsProvider); | |
break; | |
case SMSProvider::AVENTSMS: | |
$smsResponse = $this->sendSMSViaAventsms($sms, $smsProvider); | |
break; | |
case SMSProvider::RITSGATEWAY: | |
$smsResponse = $this->sendSMSViaRitsGateway($sms, $smsProvider); | |
break; | |
case SMSProvider::FASTSMS: | |
$smsResponse = $this->sendSMSViaFastSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::SAPTELESERVICES: | |
$smsResponse = $this->sendSMSViaSAPTELESERVICES($sms, $smsProvider); | |
break; | |
case SMSProvider::HINDUSTANSOFT: | |
$smsResponse = $this->sendSMSViaHindustanSoft($sms, $smsProvider); | |
break; | |
case SMSProvider::BLESSSMS: | |
$smsResponse = $this->sendSMSViaBlessSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::MOPLET: | |
$smsResponse = $this->sendSMSViaMoplet($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::REFINED_SMS: | |
$smsResponse = $this->sendSMSViaRefined($sms, $smsProvider); | |
break; | |
case SMSProvider::PRPSMS: | |
$smsResponse = $this->sendSMSViaPRPSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::MERABT: | |
$smsResponse = $this->sendSMSViaMERABT($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::SUPERSMSIDEA: | |
$smsResponse = $this->sendSMSViaSuperSMSIdea($sms, $smsProvider); | |
break; | |
case SMSProvider::RUBYSOFT: | |
$smsResponse = $this->sendSMSViaRubySoft($sms, $smsProvider); | |
break; | |
case SMSProvider::SMSSERVER: | |
$smsResponse = $this->sendSMSViaSMSServer($sms, $smsProvider); | |
break; | |
case SMSProvider::BSNL: | |
$smsResponse = $this->sendSMSViaBsnlServer($sms, $smsProvider); | |
break; | |
case SMSProvider::MDSMEDIA: | |
$smsResponse = $this->sendSMSViaMdsMedia($sms, $smsProvider); | |
break; | |
case SMSProvider::SMSU: | |
$smsResponse = $this->sendSMSViaSmsu($sms, $smsProvider); | |
break; | |
case SMSProvider::EXTREMAA: | |
$smsResponse = $this->sendSMSViaExtremaa($sms, $smsProvider); | |
break; | |
case SMSProvider::THE_PARENT_ALERT: | |
$smsResponse = $this->sendSMSViaTheParentAlert($sms, $smsProvider); | |
break; | |
case SMSProvider::KALEYRA: | |
$smsResponse = $this->sendSMSViaKalerya($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::ROUNDSMS: | |
$smsResponse = $this->sendSMSViaRoundSms($sms, $smsProvider); | |
break; | |
case SMSProvider::BULKSMSCOCHIN: | |
$smsResponse = $this->sendSMSViaBulkSmsCochin($sms, $smsProvider); | |
break; | |
case SMSProvider::FIRSTDIAL: | |
$smsResponse = $this->sendSMSFirstDial($sms, $smsProvider); | |
break; | |
case SMSProvider::ALERT: | |
$smsResponse = $this->sendSMSAlert($sms, $smsProvider); | |
break; | |
case SMSProvider::SAC: | |
$smsResponse = $this->sendSMSSAC($sms, $smsProvider); | |
break; | |
case SMSProvider::SAGARHOSTING: | |
$smsResponse = $this->sendSMSViaSagarHosting($sms, $smsProvider); | |
break; | |
case SMSProvider::MTALKS: | |
$smsResponse = $this->sendSMSViaMTALKS($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::SKYPIXELS: | |
$smsResponse = $this->sendSMSViaSKYPIXELS($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::ICECUBE: | |
$smsResponse = $this->sendSMSViaICECUBE($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::TXTLOCAL: | |
$smsResponse = $this->sendSMSViaTXTLOCAL($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::SANGAMAM: | |
$smsResponse = $this->sendSMSSANGAMAM($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::MSG91: | |
$smsResponse = $this->sendSMSMsg91($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::GETLEAD: | |
$smsResponse = $this->use_getleadSMS($sms, $smsProvider); | |
break; | |
case SMSProvider::SMSBITS: | |
$smsResponse = $this->use_getSMSBITS($sms, $smsProvider, $templateId); | |
break; | |
case SMSProvider::SMSAASTHA: | |
$smsResponse = $this->use_getSMSAASTHA($sms, $smsProvider); | |
break; | |
case SMSProvider::DATAGENIT: | |
$smsResponse = $this->use_getDATAGENIT($sms, $smsProvider); | |
break; | |
case SMSProvider::INSTAALERTS: | |
$smsResponse = $this->sendSMSViaINSTAALERT($sms, $smsProvider, $templateId); | |
break; | |
case SMSProvider::ADLINKS: | |
$smsResponse = $this->sendSMSViaADLINKS($sms, $smsProvider, $templateId); | |
break; | |
case SMSProvider::CLARET_CLG: | |
$smsResponse = $this->sendSMSViaCLARETCLG($sms, $smsProvider, $templateId); | |
break; | |
case SMSProvider::MY_SMS_BASKET: | |
$smsResponse = $this->sendSMSViaMySmsBasket($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::EASYWAYSMS: | |
$smsResponse = $this->sendSMSViaEASYWAYSMS($sms, $smsProvider,$templateId); | |
break; | |
case SMSProvider::MDSSEND: | |
$smsResponse = $this->sendSMSViaMdsSend($sms, $smsProvider, $templateId); | |
break; | |
default: | |
throw new SMSException(SMSException::SMS_PROVIDER_NOT_INTEGRATED, "SMS Provider is not integrated '$smsProvider->code"); | |
; | |
break; | |
} | |
} else { | |
throw new SMSException(SMSException::SMS_PROVIDER_NOT_FOUND, "SMS Provider not configured or no SMS provider found for the module '$sms->module'"); | |
} | |
} catch (\Exception $e) { | |
if ($e->getCode() == SMSException::SMS_PROVIDER_NOT_INTEGRATED) { | |
$this->processCreatelogSMS($sms, $smsProviderCode, $sms->module, SMS::STATUS_FAILED, "SMS Provider is not integrated '$smsProvider->code"); | |
} else if ($e->getCode() == SMSException::SMS_PROVIDER_NOT_FOUND) { | |
$this->processCreatelogSMS($sms, $smsProviderCode, $sms->module, SMS::STATUS_FAILED, "SMS Provider not configured or no SMS provider found for module '$sms->module'"); | |
} else { | |
$this->processCreatelogSMS($sms, $smsProviderCode, $sms->module, SMS::STATUS_FAILED, $e->getMessage()); | |
} | |
throw $e; | |
} | |
// Log sms | |
$this->processCreatelogSMS($sms, $smsProviderCode, $sms->module, ($smsResponse->success ? SMS::STATUS_SUCCESS : SMS::STATUS_FAILED), $smsResponse->message); | |
return $smsResponse; | |
} | |
public function sendSMSViaRitsGateway($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('UNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PWD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'uname=' . $SMS_USERNAME; | |
$SMS_URL .= '&pwd=' . $SMS_PASSWORD; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&msg=' . $msg; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaXPRESSSMS($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_API_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_ACTION = $this->getSMSProviderAttributeValue('ACTION', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_API_VERSION = $this->getSMSProviderAttributeValue('API_VERSION', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_OTP_VALUE = $this->getSMSProviderAttributeValue('ROUTE_OTP_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_PRINCIPLE_ENTITY_ID = $this->getSMSProviderAttributeValue('PRINCIPLE_ENTITY_ID', $smsProvider->smsProviderAttributes); | |
// Set message type. | |
//$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
switch ($sms->route) { | |
case SMS::ROUTE_PROMOTIONAL: | |
$SMS_ROUTE = $SMS_ROUTE_PROMOTIONAL_VALUE; | |
break; | |
case SMS::ROUTE_TRANSACTIONAL: | |
$SMS_ROUTE = $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
break; | |
case SMS::ROUTE_OTP: | |
$SMS_ROUTE = $SMS_ROUTE_OTP_VALUE; | |
break; | |
default : | |
$SMS_ROUTE = $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
break; | |
} | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
if(is_array($sms->mobileNos)){ | |
array_walk($sms->mobileNos, function (&$mobileNo) { | |
$mobileNo = strval($mobileNo); | |
if (substr($mobileNo, 0, 1) === '0') { | |
$mobileNo = substr($mobileNo, 1); | |
} | |
if (strlen($mobileNo) == 10) { | |
$mobileNo = "91" . $mobileNo; | |
} | |
elseif(substr($mobileNo, 0, 1) === '+'){ | |
$mobileNo = substr($mobileNo, 1); | |
} | |
}); | |
$phonNo = implode(",",$sms->mobileNos); | |
} | |
else{ | |
$sms->mobileNos = strval($sms->mobileNos); | |
if (substr($sms->mobileNos, 0, 1) === '0') { | |
$sms->mobileNos = substr($sms->mobileNos, 1); | |
} | |
if (strlen($sms->mobileNos) == 10) { | |
$sms->mobileNos = "91" . $sms->mobileNos; | |
} | |
else if(substr($sms->mobileNos, 0, 1) === '+'){ | |
$sms->mobileNos = substr($sms->mobileNos, 1); | |
} | |
$phonNo = $sms->mobileNos; | |
} | |
// construct url | |
$SMS_URL .= 'ApiKey=' . $SMS_API_PASSWORD; | |
$SMS_URL .= '&ClientId=' . $SMS_USERNAME; | |
$SMS_URL .= '&SenderId=' . $SMS_SENDERID; | |
$SMS_URL .= '&Message=' . urlencode($sms->message); | |
$SMS_URL .= '&MobileNumbers=' . $phonNo; | |
$SMS_URL .= '&principleEntityId='.$SMS_PRINCIPLE_ENTITY_ID; | |
if($templateId){ | |
$SMS_URL .= '&templateId='.$templateId; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaGLOZNET($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
$smsResponse->message = $apiResponse->body; | |
return $smsResponse; | |
} | |
public function sendSMSViaTECHSOL($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'workingkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
// Message GID=9349135992 ID=9349135992-1 | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaBHASHSMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$phonNo = null; | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_API_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// API Won't send sms with starting 91 so we need to remove 91 from starting of mobile no. | |
foreach ($sms->mobileNos as $key => $value) { | |
if (preg_match("/^91[0-9]{10}$/", $value)) { | |
$sms->mobileNos[$key] = substr($value, 2); | |
} | |
} | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'user=' . $SMS_USERNAME; | |
$SMS_URL .= '&pass=' . $SMS_API_PASSWORD; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&phone=' . $phonNo; | |
$SMS_URL .= '&text=' . urlencode($sms->message); | |
$SMS_URL .= '&priority=ndnd&stype=normal'; | |
try { | |
// Message GID=9349135992 ID=9349135992-1 | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaZORZACORP($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'token=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&number=' . $phonNo; | |
$SMS_URL .= '&sms=' . urlencode($sms->message); | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&type=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMithra($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'token=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&number=' . $phonNo; | |
$SMS_URL .= '&sms=' . urlencode($sms->message); | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&type=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaBULKSMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$postData = array( | |
'authkey' => $SMS_AUTHKEY, | |
'mobiles' => $phonNo, | |
'message' => urlencode($sms->message), | |
'sender' => $SMS_SENDERID, | |
'route' => $SMS_ROUTE | |
); | |
try { | |
$ch = curl_init(); | |
curl_setopt_array($ch, array( | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_POST => true, | |
CURLOPT_POSTFIELDS => $postData | |
)); | |
// ignore SSL certificate verification | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
// Get Response | |
$apiResponse = curl_exec($ch); | |
$apiResponse = json_decode($apiResponse); | |
$info = curl_getinfo($ch); | |
// $apiResponse = $this->callSendSMSAPIPost($SMS_URL,$postData); | |
if (! empty($apiResponse)) { | |
if ($info['http_code'] == 200) { | |
if (strpos($apiResponse->type, 'error') !== false) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->message; | |
} else { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->message; | |
} | |
} else { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse; | |
} | |
} | |
curl_close($ch); | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* | |
* @deprecated MEthod for sending sms via schoolserve sms provider | |
* @param SMS $sms | |
* @param SMSProvider $smsProvider | |
* @throws SMSException | |
* @return \com\linways\base\dto\sms\SMSResponse | |
*/ | |
public function sendSMSViaSCHOOLSERVESMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_API_UID = $this->getSMSProviderAttributeValue('UID', $smsProvider->smsProviderAttributes); | |
$SMS_API_PIN = $this->getSMSProviderAttributeValue('PIN', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_TEMPID = $this->getSMSProviderAttributeValue('TEMPID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$postData = array( | |
'uid' => $SMS_API_UID, | |
'pin' => $SMS_API_PIN, | |
'sender' => $SMS_SENDERID, | |
'route' => $SMS_ROUTE, | |
'mobile' => $phonNo, | |
'message' => $sms->message, | |
'tempid' => $SMS_TEMPID | |
); | |
try { | |
$ch = curl_init(); | |
curl_setopt_array($ch, array( | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_POST => true, | |
CURLOPT_POSTFIELDS => $postData | |
)); | |
// ignore SSL certificate verification | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
// Get Response | |
$apiResponse = curl_exec($ch); | |
// $apiResponse = json_decode($apiResponse); | |
$info = curl_getinfo($ch); | |
// // Print error if any | |
if (curl_errno($ch)) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} else { | |
$errorDetails = json_decode($apiResponse); | |
if ($info['http_code'] == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = ($errorDetails == null ? ($apiResponse) : $errorDetails->message); | |
} | |
} | |
curl_close($ch); | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* | |
* MEthod for sending sms via schoolserve sms provider by using api version 1.3 | |
* | |
* @param SMS $sms | |
* @param SMSProvider $smsProvider | |
* @throws SMSException | |
* @return \com\linways\base\dto\sms\SMSResponse | |
*/ | |
public function sendSMSViaSCHOOLSERVESMSV1_3($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '3' : '1'; | |
// http://yourdomain.com/webservice/smsSimpleApi.php?usersName=USERNAME | |
// &key=APIKEY&route=2&message=MESSAGE&numbers=95XXXXXXXX&senderId=SEND | |
// ERID | |
// construct url | |
$SMS_URL .= 'usersName=' . $SMS_USERNAME; | |
$SMS_URL .= '&key=' . $SMS_APIKEY; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&numbers=' . $phonNo; | |
$SMS_URL .= '&senderId=' . $SMS_SENDERID; | |
$SMS_URL .= '&smsType=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMYSMSMANTRA($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_API_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_API_PASSWORD; | |
$SMS_URL .= '&sendername=' . $SMS_SENDERID; | |
$SMS_URL .= '&mobileno=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSMSGUPSHUP($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_METHOD = $this->getSMSProviderAttributeValue('METHOD', $smsProvider->smsProviderAttributes); | |
$SMS_USERID = $this->getSMSProviderAttributeValue('USERID', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_API_VERSION = $this->getSMSProviderAttributeValue('API_VERSION', $smsProvider->smsProviderAttributes); | |
$SMS_MSG_TYPE = $this->getSMSProviderAttributeValue('MSG_TYPE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$postData = array( | |
'method' => $SMS_METHOD, | |
'send_to' => $phonNo, | |
'msg' => urlencode($sms->message), | |
'userid' => $SMS_USERID, | |
'password' => $SMS_PASSWORD, | |
'v' => $SMS_API_VERSION, | |
'msg_type' => $SMS_MSG_TYPE, | |
'auth_scheme' => "PLAIN" | |
); | |
try { | |
$ch = curl_init(); | |
curl_setopt_array($ch, array( | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_POST => true, | |
CURLOPT_POSTFIELDS => $postData | |
)); | |
// ignore SSL certificate verification | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
// Get Response | |
$apiResponse = curl_exec($ch); | |
$info = curl_getinfo($ch); | |
if (curl_errno($ch)) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} else { | |
if ($info['http_code'] == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse; | |
} else { | |
$smsResponse->message = $apiResponse; | |
$smsResponse->success = false; | |
} | |
} | |
curl_close($ch); | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMOBTEXTING($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_API_KEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_METHOD = $this->getSMSProviderAttributeValue('METHOD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'method=' . $SMS_METHOD; | |
$SMS_URL .= '&api_key=' . $SMS_API_KEY; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body->data->message; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body->data->message; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSMSCOUNTRY($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERID = $this->getSMSProviderAttributeValue('USERID', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_MSG_TYPE = $this->getSMSProviderAttributeValue('MSG_TYPE', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$postData = array( | |
'User' => $SMS_USERID, | |
'passwd' => $SMS_PASSWORD, | |
'mobilenumber' => $phonNo, | |
'message' => urlencode($sms->message), | |
'sid' => $SMS_SENDERID, | |
'mtype' => $SMS_MSG_TYPE, | |
'DR' => 'Y' | |
); | |
try { | |
$ch = curl_init(); | |
curl_setopt_array($ch, array( | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_POST => true, | |
CURLOPT_POSTFIELDS => $postData | |
)); | |
// ignore SSL certificate verification | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
// Get Response | |
$apiResponse = curl_exec($ch); | |
$info = curl_getinfo($ch); | |
if (curl_errno($ch)) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} else { | |
if ($info['http_code'] == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} | |
} | |
curl_close($ch); | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSMSAVEON($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_CONTENT_TYPE = $this->getSMSProviderAttributeValue('CONTENT_TYPE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// construct url | |
$SMS_URL .= 'AUTH_KEY=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&senderId=' . $SMS_SENDERID; | |
$SMS_URL .= '&routeId=' . $SMS_ROUTE; | |
$SMS_URL .= '&mobileNos=' . $phonNo; | |
$SMS_URL .= '&smsContentType=' . $SMS_CONTENT_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body->response; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body->response; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaAastha($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
$curl = curl_init(); | |
$urlWithFormat = $SMS_URL . "format/json"; | |
// Send the POST request with cURL | |
curl_setopt_array($curl, array( | |
CURLOPT_RETURNTRANSFER => 1, | |
CURLOPT_URL => $urlWithFormat, | |
CURLOPT_POST => 1, | |
CURLOPT_CUSTOMREQUEST => 'POST', | |
CURLOPT_HTTPHEADER => array( | |
"X-Authentication-Key:$SMS_AUTHKEY", | |
'X-Api-Method:MT' | |
), | |
CURLOPT_POSTFIELDS => array( | |
'mobile' => $phonNo, | |
'route' => $SMS_ROUTE, | |
'text' => $msg, | |
'sender' => $SMS_SENDERID | |
) | |
)); | |
// Send the request & save response to $response | |
$response = curl_exec($curl); | |
$info = curl_getinfo($curl); | |
// Print error if any | |
if (curl_errno($curl)) { | |
$smsResponse->success = false; | |
$smsResponse->message = curl_error($curl); | |
} else { | |
$errorDetails = json_decode($response); | |
if ($info['http_code'] == 200) { | |
$smsResponse->success = true; | |
$response; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $response; | |
} | |
} | |
// Close request to clear up some resources | |
curl_close($curl); | |
return $smsResponse; | |
} | |
public function sendSMSViaAventsms($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&reqid=1&format=text&route_id=760'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaHindustanSoft($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'user=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&sid=' . $SMS_SENDERID; | |
$SMS_URL .= '&msisdn=' . $phonNo; | |
$SMS_URL .= '&msg=' . $msg; | |
$SMS_URL .= '&gwid=' . $SMS_ROUTE; | |
$SMS_URL .= '&fl=0'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body->ErrorMessage; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body->ErrorMessage; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaBULKSMSGREENADS($sms, $smsProvider, $templateId=null) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERID', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&mobile=' . $phonNo; | |
$SMS_URL .= '&sendername=' . $SMS_SENDERID; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&routetype=' . $SMS_ROUTE; | |
if($templateId){ | |
$SMS_URL .= '&tid='.$templateId; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSAPTELESERVICES($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERID = $this->getSMSProviderAttributeValue('USERID', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
try { | |
$ch = curl_init(); | |
curl_setopt_array($ch, array( | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_ENCODING => '', | |
CURLOPT_MAXREDIRS => 10, | |
CURLOPT_TIMEOUT => 0, | |
CURLOPT_FOLLOWLOCATION => true, | |
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | |
CURLOPT_POST => true, | |
CURLOPT_CUSTOMREQUEST => 'POST', | |
CURLOPT_POSTFIELDS => "username=$SMS_USERID&password=$SMS_PASSWORD&mobile=$phonNo&sendername=$SMS_SENDERID&message=$sms->message&routetype=$SMS_ROUTE", | |
CURLOPT_HTTPHEADER => array( | |
'Content-Type: application/x-www-form-urlencoded' | |
), | |
)); | |
// Get Response | |
$apiResponse = curl_exec($ch); | |
$info = curl_getinfo($ch); | |
if (curl_errno($ch)) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} else { | |
if ($info['http_code'] == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse; | |
} | |
} | |
curl_close($ch); | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaFastSMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_COUNTRY = $this->getSMSProviderAttributeValue('COUNTRY', $smsProvider->smsProviderAttributes); | |
// $SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
// construct url | |
$SMS_URL .= 'authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&country=' . $SMS_COUNTRY; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaBlessSMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$SMS_CHANNEL = $sms->route == SMS::ROUTE_PROMOTIONAL ? 'Promo' : 'Trans'; | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '8' : '0'; | |
$msg = urlencode($sms->message); | |
// construct url | |
$SMS_URL .= 'user=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&channel=' . $SMS_CHANNEL; | |
$SMS_URL .= '&DCS=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&number=' . $phonNo; | |
$SMS_URL .= '&text=' . $msg; | |
$SMS_URL .= '&flashsms=0'; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMoplet($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_COUNTRY = $this->getSMSProviderAttributeValue('COUNTRY', $smsProvider->smsProviderAttributes); | |
// $SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
// construct url | |
$SMS_URL .= 'authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&country=' . $SMS_COUNTRY; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&DLT_TE_ID=' . $templateId; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaRefined($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
// construct url | |
$SMS_URL .= 'uname=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&pwd=' . urlencode($SMS_PASSWORD); | |
$SMS_URL .= '&senderid=' . urlencode($SMS_SENDERID); | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&msg=' . $msg; | |
$SMS_URL .= '&route=' . urlencode($SMS_ROUTE); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaPRPSMS($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_METHOD = $this->getSMSProviderAttributeValue('METHOD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// Set message type. | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// API Won't send sms with starting 91 so we need to remove 91 from starting of mobile no. | |
foreach ($sms->mobileNos as $key => $value) { | |
if (preg_match("/^91[0-9]{10}$/", $value)) { | |
$sms->mobileNos[$key] = substr($value, 2); | |
} | |
} | |
$phonNo = implode(",", $sms->mobileNos); | |
// construct url | |
$SMS_URL .= 'method=' . $SMS_METHOD; | |
$SMS_URL .= '&uname=' . $SMS_USERNAME; | |
$SMS_URL .= '&pass=' . $SMS_PASSWORD; | |
$SMS_URL .= '&send=' . $SMS_SENDERID; | |
$SMS_URL .= '&dest=' . $phonNo; | |
$SMS_URL .= '&msg=' . urlencode($sms->message); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMERABT($sms, $smsProvider,$templateId=null) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_METHOD = $this->getSMSProviderAttributeValue('METHOD', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_PEID = $this->getSMSProviderAttributeValue('PEID', $smsProvider->smsProviderAttributes); | |
// API Won't send sms with starting 91 so we need to remove 91 from starting of mobile no. | |
foreach ($sms->mobileNos as $key => $value) { | |
if (preg_match("/^91[0-9]{10}$/", $value)) { | |
$sms->mobileNos[$key] = substr($value, 2); | |
} | |
} | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
// construct url | |
try { | |
$SMS_URL .= "format/xml"; | |
$ch = curl_init(); | |
// Send the POST request with cURL | |
curl_setopt_array($ch, array( | |
CURLOPT_RETURNTRANSFER => 1, | |
CURLOPT_URL => $SMS_URL, | |
CURLOPT_POST => 1, | |
CURLOPT_CUSTOMREQUEST => 'POST', | |
CURLOPT_HTTPHEADER => array( | |
"X-Authentication-Key:$SMS_APIKEY", | |
"X-Api-Method:$SMS_METHOD" | |
), | |
CURLOPT_POSTFIELDS => array( | |
'mobile' => $phonNo, | |
'route' => $SMS_ROUTE, | |
'unicode' => $SMS_MESSAGE_TYPE, | |
'text' => urlencode($sms->message), | |
'sender' => $SMS_SENDERID, | |
'pe_id' => $SMS_PEID, | |
'pe_template_id' => $templateId | |
) | |
)); | |
$apiResponse = curl_exec($ch); | |
if (! empty($apiResponse)) { | |
$apiResponse = json_decode($apiResponse); | |
if (! empty($apiResponse->error)) { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->data->message; | |
} else { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->data->status; | |
} | |
} | |
curl_close($ch); | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSuperSMSIdea($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '3' : '1'; | |
// construct url | |
$SMS_URL .= 'uname=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&password=' . urlencode($SMS_PASSWORD); | |
$SMS_URL .= '&sender=' . urlencode($SMS_SENDERID); | |
$SMS_URL .= '&receiver=' . $phonNo; | |
$SMS_URL .= '&sms=' . $msg; | |
$SMS_URL .= '&route=' . urlencode($SMS_ROUTE); | |
$SMS_URL .= '&msgtype=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaRubySoft($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_API_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : ''; | |
// construct url | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&api_password=' . $SMS_API_PASSWORD; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&priority=' . $SMS_ROUTE; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
if (! empty($SMS_MESSAGE_TYPE)) { | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSMSServer($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '3' : '1'; | |
// construct url | |
$SMS_URL .= 'username=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&password=' . urlencode($SMS_PASSWORD); | |
$SMS_URL .= '&from=' . urlencode($SMS_SENDERID); | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaBsnlServer($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_USERCODE = $this->getSMSProviderAttributeValue('USERCODE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '3' : '1'; | |
// construct url | |
$SMS_URL .= 'Username=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&Password=' . urlencode($SMS_PASSWORD); | |
$SMS_URL .= '&Usercode=' . urlencode($SMS_USERCODE); | |
$SMS_URL .= '&Targets=' . $phonNo; | |
$SMS_URL .= '&Message=' . urlencode($sms->message); | |
$SMS_URL .= '&Origin=' . $SMS_SENDERID; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL,null,false,null); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaMdsMedia($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'username=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&password=' . urlencode($SMS_PASSWORD); | |
$SMS_URL .= '&senderid=' . urlencode($SMS_SENDERID); | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&number=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaExtremaa($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// Set message type. | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
$phonNo = implode(",", $sms->mobileNos); | |
// construct url | |
// $SMS_URL .= 'ver=' . $SMS_API_VERSION; | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
// $SMS_URL .= '&action=' . $SMS_ACTION; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&mobile=' . $phonNo; | |
$SMS_URL .= '&sendername=' . $SMS_SENDERID; | |
$SMS_URL .= '&routetype=' . $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSMSU($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_API_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// Set message type. | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
$phonNo = implode(",", $sms->mobileNos); | |
// construct url | |
// $SMS_URL .= 'ver=' . $SMS_API_VERSION; | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_API_PASSWORD; | |
// $SMS_URL .= '&action=' . $SMS_ACTION; | |
$SMS_URL .= '&text=' . urlencode($sms->message); | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&from=' . $SMS_SENDERID; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaTheParentAlert($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_METHOD = $this->getSMSProviderAttributeValue('METHOD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// Set message type. | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
$phonNo = implode(",", $sms->mobileNos); | |
// construct url | |
// $SMS_URL .= 'ver=' . $SMS_API_VERSION; | |
$SMS_URL .= 'format/xml'; | |
$SMS_URL .= '/key/' . $SMS_AUTHKEY; | |
$SMS_URL .= '/method/' . $SMS_METHOD; | |
$SMS_URL .= '/mobile/' . $phonNo; | |
$SMS_URL .= '/sender/' . $SMS_SENDERID; | |
$SMS_URL .= '/route/' . $SMS_ROUTE; | |
$SMS_URL .= '/unicode/' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '/text/' . urlencode($sms->message); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* | |
* MEthod for sending sms via kalerya sms provider | |
* | |
* @param SMS $sms | |
* @param SMSProvider $smsProvider | |
* @throws SMSException | |
* @return \com\linways\base\dto\sms\SMSResponse | |
*/ | |
public function sendSMSViaKalerya($sms, $smsProvider,$templateId = null) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ENTITYID = $this->getSMSProviderAttributeValue('ENTITYID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// Set message type. | |
//https://api-alerts.kaleyra.com/v4/?api_key=A03e90b1236c911d12f7447d428a946bb&method=sms&message=test+sms+integration&to=9846218755&sender=REVAPU&unicode=0 | |
// For supporting other languages need to set type as UTF-8 | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '1' : '0'; | |
// construct url | |
$SMS_URL .= 'api_key=' . $SMS_APIKEY; | |
$SMS_URL .= '&method=sms'; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&entity_id=' . $SMS_ENTITYID; | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
if($templateId){ | |
$SMS_URL .= '&template_id='.$templateId; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* | |
* MEthod for sending sms via Round sms provider | |
* | |
* @param SMS $sms | |
* @param SMSProvider $smsProvider | |
* @throws SMSException | |
* @return \com\linways\base\dto\sms\SMSResponse | |
*/ | |
public function sendSMSViaRoundSms($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&message=' . urlencode($sms->message); | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&type=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
$smsResponse->message = $apiResponse->body; | |
return $smsResponse; | |
} | |
public function sendSMSViaBulkSmsCochin($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'username=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSFirstDial($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_PEID = $this->getSMSProviderAttributeValue('PEID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'uname=' . $SMS_USERNAME; | |
$SMS_URL .= '&pwd=' . $SMS_PASSWORD; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&msg=' . $msg; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&peid=' . $SMS_PEID; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSAlert($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'workingkey=' . $SMS_PASSWORD; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSSAC($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'AUTH_KEY=' . $SMS_PASSWORD; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&senderId=' . $SMS_SENDERID.'&routeId=11'; | |
$SMS_URL .= '&mobileNos=' . $phonNo.'&smsContentType=english'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSViaSagarHosting($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$SMS_CHANNEL = $sms->route == SMS::ROUTE_PROMOTIONAL ? 'Promo' : 'Trans'; | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '8' : '0'; | |
$msg = urlencode($sms->message); | |
// construct url | |
$SMS_URL .= 'APIKey=' . $SMS_APIKEY; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&channel=' . $SMS_CHANNEL; | |
$SMS_URL .= '&DCS=' . $SMS_MESSAGE_TYPE; | |
$SMS_URL .= '&number=' . $phonNo; | |
$SMS_URL .= '&text=' . $msg; | |
$SMS_URL .= '&flashsms=0'; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaMTALKS($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNoSTR = implode(",", $sms->mobileNos); | |
$msg = urlencode($sms->message); | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($msg) == "UTF-8") ? '2' : '1'; | |
$SMS_URL = $SMS_URL.'apikey=' . $SMS_APIKEY; | |
$SMS_URL .= '&message=' .$msg; | |
$SMS_URL .= '&number=' . $phonNoSTR; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
if($templateId){ | |
$SMS_URL .= '&template_id='.$templateId; | |
} | |
$SMS_URL .="&format=json"; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaSKYPIXELS($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$ENTITYID = $this->getSMSProviderAttributeValue('ENTITYID', $smsProvider->smsProviderAttributes); | |
$phonNoSTR = implode(",", $sms->mobileNos); | |
$msg = urlencode($sms->message); | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($msg) == "UTF-8") ? '2' : '1'; | |
$SMS_URL = $SMS_URL . 'method=sms'; | |
$SMS_URL .= '&api_key=' . $SMS_APIKEY; | |
$SMS_URL .= '&message=' . urlencode ( $msg ); | |
$SMS_URL .= '&to=' . $phonNoSTR; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&entity_id=' . $ENTITYID; | |
$SMS_URL .= '&unicode=' . $SMS_MESSAGE_TYPE; | |
if($templateId){ | |
$SMS_URL .= '&template_id='.$templateId; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaICECUBE($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$API_KEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_URL .= '&key=' . $API_KEY; | |
$SMS_URL .= '&campaign=0&routeid=' . $SMS_ROUTE; | |
$SMS_URL .= '&type=text&contacts=' . $phonNo; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&msg=' . urlencode($sms->message); | |
if($templateId){ | |
$SMS_URL .= '&template_id='.$templateId; | |
} | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaTXTLOCAL($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$API_KEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$data .= 'apikey=' . $API_KEY; | |
$data .= '&numbers=' . $phonNo; | |
$data .= '&sender=' . $SMS_SENDERID; | |
$data .= '&message=' . urlencode($sms->message); | |
try { | |
//$apiResponse = $this->callSendSMSAPIGet($SMS_URL,null,true); | |
$ch = curl_init('https://api.textlocal.in/send/?' . $data); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
$apiresponse = curl_exec($ch); | |
curl_close($ch); | |
$smsResponse->success = true; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
public function sendSMSSANGAMAM($sms, $smsProvider,$templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_PEID = $this->getSMSProviderAttributeValue('PEID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// Set message type. | |
// For supporting other languages need to set type as UTF-8 | |
// $SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// construct url | |
$SMS_URL .= 'uname=' . $SMS_USERNAME; | |
$SMS_URL .= '&pwd=' . $SMS_PASSWORD; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNo; | |
$SMS_URL .= '&msg=' . $msg; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&peid=' . $SMS_PEID; | |
$SMS_URL .= '&tempid=' . $templateId; | |
try { | |
// $apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// // TO DO Error And success handling | |
// if (! empty($apiResponse)) { | |
// if ($apiResponse->code == 200) { | |
// $smsResponse->success = true; | |
// $smsResponse->message = $apiResponse->body; | |
// } else { | |
// $smsResponse->success = false; | |
// $smsResponse->message = $apiResponse->body; | |
// } | |
// } | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_URL, $SMS_URL); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
$apiresponse = curl_exec($ch); | |
curl_close($ch); | |
$smsResponse->success = true; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSMsg91($sms, $smsProvider,$templateId){ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
$SMS_URL .= 'authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&message=' . urlencode ( $msg ); | |
$SMS_URL .= '&DLT_TE_ID=' . $templateId; | |
// Dev Mode DLT Testing | |
// $SMS_URL .= '&dev_mode=1'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function use_getleadSMS($sms, $smsProvider) { | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('UNAME', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// https://app.getlead.co.uk/api/pushsms ?username=your_username&token=your_token&sender=your_senderid &to=your_recipient1&message=your_message&priority=route&message_type=1 | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) { | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else { | |
$phonNoSTR = $phonNo; | |
} | |
$SMS_URL .='username=' . $SMS_USERNAME; | |
$SMS_URL .= '&token=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNoSTR; | |
$SMS_URL .= '&message=' . urlencode ( $msg ); | |
$SMS_URL .= '&priority=' . $SMS_ROUTE; | |
$SMS_URL .= '&message_type=' . $SMS_MESSAGE_TYPE; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
} | |
/** | |
* uses mgcl | |
*/ | |
function use_getSMSBITS($sms, $smsProvider, $templateId) { | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$SMS_ENTITYID = $this->getSMSProviderAttributeValue('ENTITYID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = $sms->message; | |
$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) { | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else { | |
$phonNoSTR = $phonNo; | |
} | |
//$SMS_URL .='username=' . $SMS_USERNAME; | |
$SMS_URL .= 'id=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&to=' . $phonNoSTR; | |
$SMS_URL .= '&msg=' . urlencode ( $msg ); | |
$SMS_URL .= '&port=' . $SMS_ROUTE; | |
$SMS_URL .= '&dltid=' . $SMS_ENTITYID; | |
$SMS_URL .= '&tempid=' . $templateId; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function use_getSMSAASTHA($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_CLIENTID = $this->getSMSProviderAttributeValue('CLIENTID', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$msg = $sms->message; | |
//$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) | |
{ | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else | |
{ | |
$phonNoSTR = $phonNo; | |
} | |
$SMS_URL .= 'ApiKey=' . $SMS_APIKEY; | |
$SMS_URL .= '&ClientId=' . $SMS_CLIENTID; | |
$SMS_URL .= '&SenderId=' . $SMS_SENDERID; | |
$SMS_URL .= '&Message=' . urlencode ( $msg ); | |
$SMS_URL .= '&MobileNumbers=' . $phonNoSTR; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function use_getDATAGENIT($sms, $smsProvider) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('AUTHKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
$msg = $sms->message; | |
//$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) | |
{ | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else | |
{ | |
$phonNoSTR = $phonNo; | |
} | |
$SMS_URL .= 'auth=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&msisdn=' . $phonNoSTR; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&message=' . urlencode ( $msg ); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaINSTAALERT($sms, $smsProvider,$templateId){ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ENTITYID = $this->getSMSProviderAttributeValue('ENTITYID',$smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
$SMS_URL .= 'ver=1.0'; | |
$SMS_URL .= '&key=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&encrpt=0'; | |
$SMS_URL .= '&dest=' . $phonNo; | |
$SMS_URL .= '&send=' . $SMS_SENDERID; | |
$SMS_URL .= '&text=' . $msg; | |
$SMS_URL .= '&dlt_entity_id='.$SMS_ENTITYID; | |
$SMS_URL .= $templateId?'&dlt_template_id='.$templateId:""; | |
// $SMS_URL .= '&DLT_TE_ID=' . $templateId; | |
// Dev Mode DLT Testing | |
// $SMS_URL .= '&dev_mode=1'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
if (! empty($apiResponse)) { | |
if (! empty($apiResponse->body)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaADLINKS($sms, $smsProvider,$templateId){ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_AUTHKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE = $this->getSMSProviderAttributeValue('ROUTE',$smsProvider->smsProviderAttributes); | |
$SMS_COUNTRY = $this->getSMSProviderAttributeValue('COUNTRY',$smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_TRANSACTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_TRANSACTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
// $SMS_ROUTE_PROMOTIONAL_VALUE = $this->getSMSProviderAttributeValue('ROUTE_PROMOTIONAL_VALUE', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
$SMS_URL .= '&authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&mobiles=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&route=' . $SMS_ROUTE; | |
$SMS_URL .= '&country=' . $SMS_COUNTRY; | |
$SMS_URL .= '&DLT_TE_ID='.$templateId; | |
$SMS_URL .= '&response=json'; | |
try { | |
$response = json_decode(file_get_contents($SMS_URL)); | |
if($response) | |
{ | |
if($response->type == "success") | |
{ | |
$smsResponse->success = true; | |
$smsResponse->message = 'SMS DELIVERED'; | |
} | |
else | |
{ | |
$smsResponse->success = false; | |
$smsResponse->message = 'SMS NOT DELIVERED'; | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function SendSMSViaCLARETCLG($sms, $smsProvider,$templateId){ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USER_NAME', $smsProvider->smsProviderAttributes); | |
$SMS_PASSWORD = $this->getSMSProviderAttributeValue('API_PASSWORD', $smsProvider->smsProviderAttributes); | |
// $SMS_AUTHKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDER_ID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// $SMS_ROUTE = $sms->route == SMS::ROUTE_PROMOTIONAL ? $SMS_ROUTE_PROMOTIONAL_VALUE : $SMS_ROUTE_TRANSACTIONAL_VALUE; | |
$msg = urlencode($sms->message); | |
// $SMS_URL .= '&authkey=' . $SMS_AUTHKEY; | |
$SMS_URL .= '&user=' . $SMS_USERNAME; | |
$SMS_URL .= '&password=' . $SMS_PASSWORD; | |
$SMS_URL .= '&mobile=' . $phonNo; | |
$SMS_URL .= '&message=' . $msg; | |
$SMS_URL .= '&sender=' . $SMS_SENDERID; | |
$SMS_URL .= '&type=3'; //this type passing in url the default value is 3 | |
// $SMS_URL .= '&route=' . $SMS_ROUTE; | |
// $SMS_URL .= '&country=' . $SMS_COUNTRY; | |
$SMS_URL .= '&template_id='.$templateId; | |
// $SMS_URL .= '&response=json'; | |
try { | |
$response = json_decode(file_get_contents($SMS_URL)); | |
if($response) | |
{ | |
if($response->type == "success") | |
{ | |
$smsResponse->success = true; | |
$smsResponse->message = 'SMS DELIVERED'; | |
} | |
else | |
{ | |
$smsResponse->success = false; | |
$smsResponse->message = 'SMS NOT DELIVERED'; | |
} | |
} | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaMySmsBasket($sms, $smsProvider, $templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_PEID = $this->getSMSProviderAttributeValue('PE_ID', $smsProvider->smsProviderAttributes); | |
// $SMS_TEMPLATEID = $this->getSMSProviderAttributeValue('TEMPLATE_ID', $smsProvider->smsProviderAttributes); | |
$SMS_TEMPLATEID = $templateId; | |
$phonNo = implode(",", $sms->mobileNos); | |
$msg = $sms->message; | |
//$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) | |
{ | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else | |
{ | |
$phonNoSTR = $phonNo; | |
} | |
$SMS_URL .= 'apikey=' . $SMS_APIKEY; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&number=' . $phonNoSTR; | |
$SMS_URL .= '&message=' . urlencode ( $msg ); | |
$SMS_URL .= '&pe_id=' . $SMS_PEID; | |
$SMS_URL .= '&template_id=' . $SMS_TEMPLATEID; | |
$SMS_URL .= '&format=json'; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->status == "OK") { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
function sendSMSViaEASYWAYSMS($sms, $smsProvider, $templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('APIKEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_TEMPLATEID = $templateId; | |
$phonNo = implode(",", $sms->mobileNos); | |
$msg = $sms->message; | |
//$SMS_MESSAGE_TYPE = (mb_detect_encoding($sms->message) == "UTF-8") ? '2' : '1'; | |
// $phonNoSTR = implode(",", $phonNo); | |
if (is_array ( $phonNo )) | |
{ | |
$phonNoSTR = implode ( ",", $phonNo ); | |
} else | |
{ | |
$phonNoSTR = $phonNo; | |
} | |
$SMS_URL .= 'key=' . $SMS_APIKEY; | |
$SMS_URL .= '&campaign=0&routeid=26&type=text'; | |
$SMS_URL .= '&contacts=' . $phonNoSTR; | |
$SMS_URL .= '&senderid=' . $SMS_SENDERID; | |
$SMS_URL .= '&msg=' . urlencode ( $msg ); | |
$SMS_URL .= '&template_id=' . $SMS_TEMPLATEID; | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->status == "OK") { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* Sends an SMS using the MdsSend SMS provider. | |
* | |
* @param object $sms An object containing the SMS details, including the message and recipient mobile numbers. | |
* @param object $smsProvider An object containing the SMS provider details, including URL and attributes. | |
* @param string $templateId The template ID to be used for the SMS. | |
* | |
* @return SMSResponse Returns an instance of SMSResponse indicating the success or failure of the SMS sending operation. | |
* | |
* @throws SMSException | |
*/ | |
public function sendSMSViaMdsSend($sms, $smsProvider, $templateId) | |
{ | |
$smsResponse = new SMSResponse(); | |
$SMS_URL = $smsProvider->url; | |
$SMS_USERNAME = $this->getSMSProviderAttributeValue('USERNAME', $smsProvider->smsProviderAttributes); | |
$SMS_APIKEY = $this->getSMSProviderAttributeValue('API_KEY', $smsProvider->smsProviderAttributes); | |
$SMS_SENDERID = $this->getSMSProviderAttributeValue('SENDERID', $smsProvider->smsProviderAttributes); | |
$SMS_ROUTE = $this->getSMSProviderAttributeValue('ROUTE', $smsProvider->smsProviderAttributes); | |
$SMS_TEMPLATEID = $templateId; | |
$SMS_PEID = $this->getSMSProviderAttributeValue('PE_ID', $smsProvider->smsProviderAttributes); | |
$phonNo = implode(",", $sms->mobileNos); | |
// construct url | |
$SMS_URL .= 'username=' . urlencode($SMS_USERNAME); | |
$SMS_URL .= '&apikey=' . urlencode($SMS_APIKEY); | |
$SMS_URL .= '&senderid=' . urlencode($SMS_SENDERID); | |
$SMS_URL .= '&route=' . urlencode($SMS_ROUTE); | |
$SMS_URL .= '&mobile=' . $phonNo; | |
$SMS_URL .= '&text=' . urlencode($sms->message); | |
$SMS_URL .= '&TID=' . urlencode($SMS_TEMPLATEID); | |
$SMS_URL .= '&PEID=' . urlencode($SMS_PEID); | |
try { | |
$apiResponse = $this->callSendSMSAPIGet($SMS_URL); | |
// TO DO Error And success handling | |
if (! empty($apiResponse)) { | |
if ($apiResponse->code == 200) { | |
$smsResponse->success = true; | |
$smsResponse->message = $apiResponse->body; | |
} else { | |
$smsResponse->success = false; | |
$smsResponse->message = $apiResponse->body; | |
} | |
} | |
$smsResponse; | |
} catch (\Exception $e) { | |
throw new SMSException(SMSException::SMS_PROVIDER_API_EXCEPTION, $e->getMessage()); | |
} | |
return $smsResponse; | |
} | |
/** | |
* Send POST request to a URL | |
* | |
* @param string $url | |
* URL to send the POST request to | |
* @param array $headers | |
* additional headers to send | |
* @param mixed $body | |
* POST body data | |
* @param string $username | |
* Basic Authentication username (deprecated) | |
* @param string $password | |
* Basic Authentication password (deprecated) | |
*/ | |
private function callSendSMSAPIPost($url, $postData = null, $enableSSLVerification = false) | |
{ | |
$header = array(); | |
$header["Content-Type"] = 'application/json'; | |
// $postData = Body::Json($postData); | |
Request::verifyPeer($enableSSLVerification); | |
return Request::post($url, $header, $postData)->body; | |
} | |
/** | |
* Send a GET request to a URL | |
* | |
* @param string $url | |
* URL to send the GET request to | |
* @param mixed $parameters | |
* parameters to send in the querystring | |
* @param string $enableSSLVerification | |
* @param string $contentType | |
*/ | |
private function callSendSMSAPIGet($url, $parameters = null, $enableSSLVerification = false,$contentType = 'application/json') | |
{ | |
$apiResponse = null; | |
$header = array(); | |
$header["Content-Type"] = $contentType; | |
Request::verifyPeer($enableSSLVerification); | |
$apiResponse = Request::get($url, $header, $parameters); | |
return $apiResponse; | |
} | |
private function validateSMSRequest($sms) | |
{ | |
if (empty($sms)) { | |
throw new SMSException(SMSException::INVALID_REQUEST, "SMS request is empty or not valid"); | |
} | |
if (empty($sms->context)) { | |
throw new SMSException(SMSException::CONTEXT_EMPTY, "SMS context is empty or null"); | |
} | |
if (empty($sms->module)) { | |
throw new SMSException(SMSException::MODULE_EMPTY, "SMS module is empty or null"); | |
} | |
if (empty($sms->mobileNos)) { | |
throw new SMSException(SMSException::MOBILE_NO_EMPTY, "SMS mobile nos is empty or not specified"); | |
} | |
} | |
} | |
?> |