28-12-1396، 02:52 ب.ظ
29-12-1396، 12:26 ب.ظ
من طبق API سایت SMS.ir توضیح میدم که خودمون هم نمایندهاش هستیم و درصورت تمایل میتونین ازطریق ایمیل به واحد فروش sales@ncis.ir درخواست بدین تا در اختیارتون قرار بگیره و بتونین ازطریق نشانی newsms.ncis.ir از این پنل استفاده کنید.
ابتدا یک پوشهی components به پروژهی خودتون اضافه کنید و بعد یک فایل جدید بهاسم SMS.php ایجاد کنید و این کد رو داخلش بنویسید:
حالا توی فایل تنظیمات config/web.php این کامپوننت رو معرفی کنید:
بجای apiKey و secretKey و lineNumber هم باید مقادیر مربوط به پنل خودتون رو که در قسمت «API برنامهنویسان» میتونین تعریف کنین، وارد کنید.
حالا هرجای برنامه که خواستین پیام ارسال کنید، میتونین از این روش کمک بگیرین:
امیدوارم که روش کار رو متوجه شده باشین.
ابتدا یک پوشهی components به پروژهی خودتون اضافه کنید و بعد یک فایل جدید بهاسم SMS.php ایجاد کنید و این کد رو داخلش بنویسید:
<?php namespace appcomponents; use yiibaseComponent; set_time_limit(0); class SMS extends Component { public $apiKey; public $secretKey; public $lineNumber; public function send($to, $text) { $token = $this->getToken(); if ($token != false) { $postData = array( 'Messages' => [$text], 'MobileNumbers' => is_array($to) ? $to : [$to], 'LineNumber' => $this->lineNumber, 'SendDateTime' => '', 'CanContinueInCaseOfError' => 'false', ); $url = $this->getAPIMessageSendUrl(); $SendMessage = $this->execute($postData, $url, $token); $object = json_decode($SendMessage); if (is_object($object)) { $array = get_object_vars($object); if (is_array($array)) { $result = $array['Message']; } else { $result = false; } } else { $result = false; } } else { $result = false; } return $result; } private function getToken() { $postData = array( 'apiKey' => $this->apiKey, 'SecretKey' => $this->secretKey, 'System' => 'php_rest_v_1_1' ); $postString = json_encode($postData); $ch = curl_init($this->getApiTokenUrl()); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' )); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POST, count($postString)); curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); $resp = false; if (is_object($response)) { $resultVars = get_object_vars($response); if (is_array($resultVars)) { @$IsSuccessful = $resultVars['IsSuccessful']; if ($IsSuccessful == true) { @$TokenKey = $resultVars['TokenKey']; $resp = $TokenKey; } } } return $resp; } private function getApiTokenUrl() { return 'http://RestfulSms.com/api/Token'; } private function getAPIMessageSendUrl() { return 'http://RestfulSms.com/api/MessageSend'; } private function execute($postData, $url, $token) { $postString = json_encode($postData); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'x-sms-ir-secure-token: ' . $token )); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POST, count($postString)); curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); $result = curl_exec($ch); curl_close($ch); return $result; } }
حالا توی فایل تنظیمات config/web.php این کامپوننت رو معرفی کنید:
'components' => [ 'sms' => [ 'class' => 'appcomponentsSMS', 'apiKey' => '******', 'secretKey' => '******', 'lineNumber' => '******', ], // ... ],
بجای apiKey و secretKey و lineNumber هم باید مقادیر مربوط به پنل خودتون رو که در قسمت «API برنامهنویسان» میتونین تعریف کنین، وارد کنید.
حالا هرجای برنامه که خواستین پیام ارسال کنید، میتونین از این روش کمک بگیرین:
Yii::$app->sms->send($targetNumber, $message); // Single target // or Yii::$app->sms->send([$number1, $number2, $number3], $message); // Multiple targets
امیدوارم که روش کار رو متوجه شده باشین.
09-01-1397، 01:37 ب.ظ
(29-12-1396، 12:26 ب.ظ)ADMIN نوشته: [ -> ]من طبق API سایت SMS.ir توضیح میدم که خودمون هم نمایندهاش هستیم و درصورت تمایل میتونین ازطریق ایمیل به واحد فروش sales@ncis.ir درخواست بدین تا در اختیارتون قرار بگیره و بتونین ازطریق نشانی newsms.ncis.ir از این پنل استفاده کنید.
ابتدا یک پوشهی components به پروژهی خودتون اضافه کنید و بعد یک فایل جدید بهاسم SMS.php ایجاد کنید و این کد رو داخلش بنویسید:
<?php namespace appcomponents; use yiibaseComponent; set_time_limit(0); class SMS extends Component { public $apiKey; public $secretKey; public $lineNumber; public function send($to, $text) { $token = $this->getToken(); if ($token != false) { $postData = array( 'Messages' => [$text], 'MobileNumbers' => is_array($to) ? $to : [$to], 'LineNumber' => $this->lineNumber, 'SendDateTime' => '', 'CanContinueInCaseOfError' => 'false', ); $url = $this->getAPIMessageSendUrl(); $SendMessage = $this->execute($postData, $url, $token); $object = json_decode($SendMessage); if (is_object($object)) { $array = get_object_vars($object); if (is_array($array)) { $result = $array['Message']; } else { $result = false; } } else { $result = false; } } else { $result = false; } return $result; } private function getToken() { $postData = array( 'apiKey' => $this->apiKey, 'SecretKey' => $this->secretKey, 'System' => 'php_rest_v_1_1' ); $postString = json_encode($postData); $ch = curl_init($this->getApiTokenUrl()); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' )); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POST, count($postString)); curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); $resp = false; if (is_object($response)) { $resultVars = get_object_vars($response); if (is_array($resultVars)) { @$IsSuccessful = $resultVars['IsSuccessful']; if ($IsSuccessful == true) { @$TokenKey = $resultVars['TokenKey']; $resp = $TokenKey; } } } return $resp; } private function getApiTokenUrl() { return 'http://RestfulSms.com/api/Token'; } private function getAPIMessageSendUrl() { return 'http://RestfulSms.com/api/MessageSend'; } private function execute($postData, $url, $token) { $postString = json_encode($postData); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'x-sms-ir-secure-token: ' . $token )); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_POST, count($postString)); curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); $result = curl_exec($ch); curl_close($ch); return $result; } }
حالا توی فایل تنظیمات config/web.php این کامپوننت رو معرفی کنید:
'components' => [ 'sms' => [ 'class' => 'appcomponentsSMS', 'apiKey' => '******', 'secretKey' => '******', 'lineNumber' => '******', ], // ... ],
بجای apiKey و secretKey و lineNumber هم باید مقادیر مربوط به پنل خودتون رو که در قسمت «API برنامهنویسان» میتونین تعریف کنین، وارد کنید.
حالا هرجای برنامه که خواستین پیام ارسال کنید، میتونین از این روش کمک بگیرین:
Yii::$app->sms->send($targetNumber, $message); // Single target // or Yii::$app->sms->send([$number1, $number2, $number3], $message); // Multiple targets
امیدوارم که روش کار رو متوجه شده باشین.
بسیار عالی تشکر