Нужна помощь?
Задайте вопрос специалисту технической поддержки
Ниже приведен пример использования возможностей шлюза 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 , $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 для корректной работы.