رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمونه کدی برای وصل شدن و کار کرن با پنل های ارسال پیامک
#1
نمونه کدی برای وصل شدن  و کار کرن با پنل های ارسال پیامک اگر هست ممنون میشم بزارید
پاسخ
تشکر شده توسط:
#2
من طبق API سایت SMS.ir توضیح میدم که خودمون هم نماینده‌اش هستیم و درصورت تمایل میتونین ازطریق ایمیل به واحد فروش sales@ncis.ir درخواست بدین تا در اختیارتون قرار بگیره و بتونین ازطریق نشانی newsms.ncis.ir از این پنل استفاده کنید.

ابتدا یک پوشه‌ی components به پروژه‌ی خودتون اضافه کنید و بعد یک فایل جدید به‌اسم SMS.php ایجاد کنید و این کد رو داخلش بنویسید:
<?php

namespace app\components;

use yii\base\Component;

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' => 'app\components\SMS',
        '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

امیدوارم که روش کار رو متوجه شده باشین.
پاسخ
تشکر شده توسط:
#3
(29-12-1396، 12:26 ب.ظ)ADMIN نوشته: من طبق API سایت SMS.ir توضیح میدم که خودمون هم نماینده‌اش هستیم و درصورت تمایل میتونین ازطریق ایمیل به واحد فروش sales@ncis.ir درخواست بدین تا در اختیارتون قرار بگیره و بتونین ازطریق نشانی newsms.ncis.ir از این پنل استفاده کنید.

ابتدا یک پوشه‌ی components به پروژه‌ی خودتون اضافه کنید و بعد یک فایل جدید به‌اسم SMS.php ایجاد کنید و این کد رو داخلش بنویسید:
<?php

namespace app\components;

use yii\base\Component;

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' => 'app\components\SMS',
        '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

امیدوارم که روش کار رو متوجه شده باشین.


بسیار عالی تشکر
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان