СМС шлюз для сайта или СМС средствами PHP

Что же такое СМС для сайта и для чего это нужно?

Попробую очень прост ответить на этот вопрос. Например, у Вас интернет магазин, СМС с подтверждением заказа, изменением статусов прилично повышает рейтинг в глазах покупателей и доверие.

Так же СМС можно с успехом использовать для авторизации на сайте. Скажете — дорого? Но взгляните на это с другой стороны! Вы получаете базу клиентов с рабочими телефонными номерами, все операции, подтверждённые по СМС, имею более высокий уровень безопасности и т.д.

Итак, вернёмся к СМС :) Существует достаточно большое количество сервисов отправки СМС в интернете, большинство из них снабжены API для взаимодействия с Вашим сайтом. Но в сегодняшней статье я опишу сервис, с которым мне пришлось работать последним.

Его преимущество прежде всего выгодно для Вас, так как регистрация на нём использую нашу партнерскую страницу мгновенно обеспечит 10% скидку на все услуги.

Собственно, страница регистрации it103.sms.ru/

API у данного сервиса достаточно широкий, но в нашем примере воспользуемся только основными функциями: отправка, проверка баланса.

PHP Class для работы с сервисом it103.sms.ru/
<?php

/**
 * Библиотека для отправки СМС сообщений через щлюз http://sms.ru
 */
class Lib_SMS_SMSRU {

    // описание отправки - отображается в кабинете клиента системы отправки СМС
    private $description = '';
    // Время старта (не использовать прошедшее время)
    private $start_time;
    // отправитель. Задает альфанумерическое имя (альфаимя). Допускаются только альфанумерические имена, зарегистрированные для пользователя
    private $alfaname;
    // Список получателей
    private $recipients = array();
    // ключ авторизации
    private $authkey = '';
    // текст сообщения UTF-8!
    private $text;
    // ключ скидки 10%
    private $partner_id = 52036;
    // ответ от шлюза отправки сообщений
    private $response;
    // время ожидания ответа от шлюза отправки сообщений
    private $response_time = 5;

    public function __construct($authkey = '', $alfaname = '') {
        $this->alfaname = $alfaname;
        $this->authkey = $authkey;
    }

    public function setText($text) {
        $this->text = $text;
    }

    public function addRecipient($number) {
        if (!empty($number)) {
            $this->recipients[] = $number;
        }//if
    }

    public function setDescription($description) {
        $this->description = $description;
    }

    public function getResponse() {
        return $this->response;
    }

    public function send($start_time = null, $response_time = null) {
        if (!empty($response_time)) {
            $this->response_time = $response_time;
        }//if

        if (empty($start_time)) {
            $this->start_time = time();
        } else {
            $this->start_time = $start_time;
        }//if

        foreach ($this->recipients as $recipient) {
            $this->_send($recipient);
        }//foreach     
    }

    private function _send($number = '') {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_TIMEOUT, $this->response_time);
        curl_setopt($ch, CURLOPT_URL, 'http://sms.ru/sms/send');
        curl_setopt($ch, CURLOPT_POSTFIELDS, array(
            'api_id' => $this->authkey,
            'partner_id' => $this->partner_id,
            'to' => $number,
            'from' => $this->alfaname,
            'time' => $this->start_time,
            "text" => $this->text
        ));
        $this->response = curl_exec($ch);
        curl_close($ch);
    }

    public function checkBallance() {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_TIMEOUT, $this->response_time);
        curl_setopt($ch, CURLOPT_URL, 'http://sms.ru/my/balance');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, array(
            "api_id" => $this->authkey
        ));
        $this->response = curl_exec($ch);
        $response = preg_replace('/\d+\s/', '', $this->response);
        curl_close($ch);

        return $response;
    }

}

Пример отправки СМС в коде PHP
$sms = new Lib_SMS_SMSRU('Ключ выдаётся при регистрации на сервисе', 'альфаимя');
$sms->addRecipient($_POST['sms_tel']); // добавляем получателя
$sms->setText('текст сообщения');
$sms->send(); // отправить СМС


Пример получения баланса в коде PHP
$sms = new Lib_SMS_SMSRU('Ключ выдаётся при регистрации на сервисе');
echo $sms->checkBallance(); // вывод баланса на экран
  • 0
  • 25 апреля 2014, 12:28
  • igorrius

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
comments powered by Disqus