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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?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"]."<br>");
}
$res=$Addressbook->addPhoneToAddressBook($addrbook_id,
                '79010000002', 'Сергей;Вершинин;');
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."<br>");
}
 
//Проверяем баланс счета
$res=$Account->getUserBalance();
if (isset($res["result"]["error"])) {
echo ("Ошибка: ".$res["result"]["code"]."<br>");
} 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"]."<br>");
} 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"]."<br>");
} 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 {
//недостаточно денег на рассылку
}
 
?>

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

vector
image

Нужна помощь?

Задайте вопрос специалисту технической поддержки