Готовое решение для отправки смс из bash

Скачайте класс

mainsms.class.php для PHP5.4 и новее

mainsms.class.php для PHP5.3


Посмотрите пример вызова функций класса с описанием.


<?php
// Подробнее об API проекта, параметрах, ответах и ошибках читайте http://payforsms.ru/home/mainapi#send_api
// Подключение класса
require_once 'mainsms.class.php' ;

// MainSMS Инициализация объекта
// Список параметров ($project, $key, $useSSL = false, $testMode = false)
// $project - название проекта, берется со страницы http://payforsms.ru/office/api_account
// $key - ключ проекта, берется со страницы http://payforsms.ru/office/api_account
// $useSSL - не обязательный параметр, если true то взаимодействие будет осуществляться по протоколу https иначе http
// $testMode - не обязательный параметр, если true то сообщения не будут отправляться и деньги не будут списываться(используется для отладки)
$api = new MainSMS ( 'mainsms' , 'c72a61ef07e80', false, false );

// getBalance Запрос баланса, возвращает остаток на балансе в случае успеха и false в случае ошибки
// Параметров нет
echo 'Текущий баланс: ' . $api->getBalance (), PHP_EOL ;

// sendSMS отправка смс, возвращает true в случае успеха, false в случае ошибки
// список параметров sendSMS($recipients, $message, $sender, $run_at = null)
// $recipients - получатели в любом формате, пример 89121231234,9121231235
// $message - текст сообщения в кодировке UTF-8
// $sender - имя отправителя
// %run_at - не обязательный параметр, дата и время кода будет отправлено сообщение, пример '03.10.2011 17:00'.
echo 'отправка СМС/а смс: ' . $api->sendSMS ( '89121231234' , 'api test' , 'mainsms', '03.10.2011 17:00' ), PHP_EOL ;

// Если используется отличная от UTF-8 кодировок, $message необходимо конвертировать в UTF-8 ( в PHP можно использовать например iconv или mb_convert_encoding )
 $api->sendSMS ( '89121231234' , mb_convert_encoding("апи тест", "UTF-8") , 'mainsms', '03.10.2011 17:00' );

// getResponse - последний ответ от сервера
$response = $api->getResponse ();
// checkStatus запрос статуса сообщения, возвращает ассоциативный массив статусов, пример {"1567" : "delivered", "1568" : "accepted"} 
// список параметров checkStatus ($messagesId)
// $messagesId - id сообщений через запятую, пример 1567,1568 
$result = $api->checkStatus ( $response [ 'messages_id' ]);
foreach ( $result as $message_id => $status ) {
echo sprintf ( 'Статус сообщения %s: %s' , $message_id , $status ), PHP_EOL ;
}

// messagePrice - запрос стоимости смс, возвращает сумму которая спишется в случае отправки сообщения или false в случае ошибки
// список параметров ($recipients, $message)
// $recipients - получатели в любом формате, пример 89121231234,9121231235
// $message - текст сообщения
echo 'запрос стоимости смс: ' . $api->messagePrice ( '89121231234,9121231235', 'api test' ), PHP_EOL ;


// phoneInfo - запрос информации о номерах, возвращает массив ответов содержащий названия операторов, регион, код.
// список параметров phoneInfo( $phones )
// $phones - номера телефонов в любом формате, пример 89121231234,9121231235
echo 'запрос информации о номерах: ' . $api->phoneInfo ( '89121231234,9121231235' ), PHP_EOL ;

// cancelSMS отмена запланированного сообщения, возвращает ассоциативный массив статусов, пример {"1567" : "canceled", "1568" : "canceled"} 
// список параметров cancelSMS ($messagesId)
// $messagesId - id сообщений через запятую, пример 1567,1568 
// $api->cancelSMS ( $response [ 'messages_id' ]);

// Для отладки используйте getResponse
// $response = $api->getResponse ();
// var_dump($response);
// В случае обнаружение каких либо ошибок обращайтесь в техническую поддержку payforsms.ru http://payforsms.ru/support/run
?>