Пример подключения к шлюзу 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