menu

Пример подключения к шлюзу ePochta SMS 3.0 на PHP


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


Ниже приведен пример использования возможностей шлюза ePochta SMS с использованием языка программирования PHP. Наши специалисты подготовили специальный класс, с использованием которого вы сможете с лёгкостью интегрировать отправку СМС в свой проект.

Скачать класс

Обратите внимание, перед использованием класса вам необходимо внести измнения в файл config.php. Вам необходимо заполнить значение переменных $sms_key_private, $sms_key_public, которые можно взять в личном кабинете в разделе Настройки СМС сервиса. Также не забудьте там же активировать использование API. Используйте кодировку UTF-8 для корректной работы.



Пример использования класса:

<?php
include 'config.php';
include 'Addressbook.php';
include 'Exceptions.php';
include 'Account.php';
include 'Stat.php';

$Gateway=new APISMS($sms_key_private,$sms_key_public, 
          'http://atompark.com/api/sms/');
$Addressbook=new Addressbook($Gateway);
$Exceptions=new Exceptions($Gateway);
$Account=new Account($Gateway);
$Stat = new Stat ($Gateway);

Первым делом, зарегистрируем имя отправителя, если собираемся рассылать СМС, в том числе в Украину. Если вы собираетесь отправлять СМС исключительно в Россию - регистрировать имя отправителя нет необходимости

$res=$Account->registerSender('testName','ua');

Проверяем успешность операции

if (isset($res["result"]["error"])) {
die ("Ошибка: ".$res["result"]["code"]);
}

Создаем адресную книгу

$res=$Addressbook->addAddressBook('Test book');

Проверяем успешность операции

if (isset($res["result"]["error"])) {
die ("Ошибка: ".$res["result"]["code"]);
} else {

Получаем ИД книги

$addrbook_id = $res["result"]["addressbook_id"];
}

Добавляем несколько телефонов для рассылки

$res=$Addressbook->addPhoneToAddressBook($addrbook_id, 
        '79010000001', 'Валерий;Маринец;');
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."
");
}
$res=$Addressbook->addPhoneToAddressBook($addrbook_id, 
        '79010000002', 'Сергей;Вершинин;');
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."
");
}

Проверяем баланс счета

$res=$Account->getUserBalance();
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."
");
} else {
echo ("Баланс: ".$res["result"]["result"]["balance_currency"]." 
    ".$res["result"]["result"]["currency"]);
$balance = $res["result"]["balance_currency"];
}

Проверим, хватает ли денег на запланированную рассылку

$res = $Stat->checkCampaignPrice("testName", 
    "Тестируем отправку СМС сообщения через ePochta SMS", 
    $addrbook_id);
if (isset($res["result"]["error"])) {
die ("Ошибка: ".$res["result"]["code"]."
");
} else {
$cost = $res["result"]["price"];
}

if ($balance > $cost) {

А теперь по созданной адресной книге отправим рассылку

$res = $Stat->createCampaign("testName", 
    "Тестируем отправку СМС сообщения через ePochta SMS", 
    $addrbook_id, "", 0, 0, 0, "");
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."
");
} else {
$campaign_id = $res["result"]["id"];
}

Теперь можно получить данные о доставке. Понятно, что в реальности необходимо будет немного подождать для обновления статусов, сохранив $campaign_id и выполнив запрос позже.

$res = $Stat->getCampaignDeliveryStats($campaign_id);

если запрос выполнить сразу, то мы получим JSON примерно следующего содержания

{
"result":{
"phone":["79010000001","79010000002"],
"sentdate":["0000-00-00 00:00:00","0000-00-00 00:00:00"],
"donedate":["0000-00-00 00:00:00","0000-00-00 00:00:00"],
"status":["0","0"]
}
}

Что значит, что кампания еще находится в очереди отправки

} else {

недостаточно денег на рассылку

}

?>

Скачать класс

Другие примеры:

Пример работы с SMS шлюзом на языке Java


Пример работы с SMS шлюзом на языке C#


Пример работы с SMS шлюзом на языке Perl


Пример работы с SMS шлюзом на языке Python