spiti / smsclient
用于操作短信通知API服务的PHP类
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: ^7.0.1
This package is not auto-updated.
Last update: 2024-09-27 02:24:22 UTC
README
用于操作短信通知API服务的PHP类
目前支持DevinoTelecom http://www.devinotele.com/
通过Composer安装依赖
该项目需要获取必要的依赖项
为此请运行
php composer.phar install
为了在自己的项目中安装
php composer.phar require sintsov/smsclient "dev-master"
要求
- PHP >= 5.4.0
类和方法
类 SmsClient\DevinoSMS\Api
实现Devino REST API的基本方法
send
描述: 发送短信消息
参数
$sourceAddress: string, 发送者。最多11个拉丁字母或15个数字。
$destinationAddress: string|array, 目标地址或地址数组。 (国家代码+网络代码+电话号码,例如:79031234567)
$data: string, 消息文本
$sendDate: mixed. 消息发送日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp (可选参数)
$validity: integer, 消息有效期(分钟),可选参数
返回值
array 消息ID数组
示例
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!'); // отправка SMS
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00'); // отправка SMS в указанное время
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00', '10'); // отправка SMS в указанное время и указанием времени жизни сообщения (10 минут)
sendByTimeZone
描述: 考虑接收者时区发送短信消息
参数
$sourceAddress: string, 发送者。最多11个拉丁字母或15个数字。
$destinationAddress: string, 目标地址。 (国家代码+网络代码+电话号码,例如:79031234567
$data: string, 消息文本
$sendDate: mixed. 消息发送日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp
$validity: integer, 消息有效期(分钟),可选参数
返回值
array 消息ID数组
示例
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '1436608063'); // отправка SMS в указанное время с учетом часового пояса получателя указанного в виде timestamp
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00'); // отправка SMS в указанное время с учетом часового пояса получателя
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00', '10'); // отправка SMS в указанное время с учетом часового пояса получателя и указанием времени жизни сообщения (10 минут)
getSMSStatus
描述: 查询SMS消息状态
参数
$messageID: string, 消息ID(由send和sendByTimeZone方法返回)
返回值
object 对象,格式如下
- State: 消息状态
- TimeStampUtc: 接收响应的日期和时间
- StateDescription: 状态描述
- CreationDateUtc: 创建日期
- SubmittedDateUtc: 发送日期
- ReportedDateUtc: 送达日期
- Price: 消息价格
示例
$devinoSMS->getSMSStatus($id); // Запрос статуса SMS-сообщения
getInbox
描述: 查询指定期间收到的SMS消息
参数
$minDateUTC: mixed, 选择开始日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp
$maxDateUTC: mixed, 选择结束日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp
返回值
array 包含字段的对象数组
- Data: 消息文本
- SourceAddress: 发送者地址
- DestinationAddress: 接收短信的地址
- ID: 消息ID
示例
$devinoSMS->getInbox('2015-07-09T09:00:00', '2015-07-09T19:00:00'); // Запрос входящих SMS-сообщений за указанный период
$devinoSMS->getInbox('1436608063', '1436861906'); // Запрос входящих SMS-сообщений за указанный период используя timestamp
getStatistics
描述: 查询指定期间短信发送的统计数据
参数
$startDate: mixed, 选择开始日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp
$endDate: mixed, 选择结束日期。字符串格式为(YYYY-MM-DDTHH:MM:SS)或Timestamp
返回值
array 包含统计信息的数组
示例
$devinoSMS->getStatistics('2015-07-09T09:00:00', '2015-07-09T19:00:00'); // Запрос статистики по SMS-рассылкам за указанный период
$devinoSMS->getStatistics('1436608063', '1436861906'); // Запрос статистики по SMS-рассылкам за указанный период используя timestamp
getSessionID
描述: 获取会话ID(在API方法中在构造函数中调用,因此不需要单独调用它)
返回值
string 会话ID
示例
$devinoSMS->getSessionID(); // получить ID сесси
getBalance
描述: 查询余额
返回值
double 余额
示例
$devinoSMS->getBalance(); // получить баланс
getClient
描述: 获取客户端
返回值
object SmsClient\Client\ClientInterface
示例
$client = $devinoSMS->getClient(); // получить клиента
$client->setTimeout(2); // установить таймаут соединения
API使用示例
DevinoTelecom
require_once 'vendor/autoload.php';
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);
use SmsClient\DevinoSMS\Api;
$devinoSMS = new Api('login', 'password');
// пример установки таймаута в секундах, по дефолту используется 1 секунда
$devinoSMS->getClinet()->setTimeout(2);
try {
$sessionID = $devinoSMS->getSessionID();
echo "<h2>SessionID: {$sessionID}</h2><hr />";
echo "<h2>Balance: {$devinoSMS->getBalance()} руб</h2>";
$list = $devinoSMS->send('test', '7905000000', 'Тестовое сообщение!');
$id = reset($list);
echo "<h2>Send SMS: {$id}</h2>";
$list = $devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение с учетом часового пояса!', '2015-07-09T11:55:00');
$id = reset($list);
echo "<h2>Send SMS By Time Zone: {$id}</h2>";
$list = $devinoSMS->send('test', array('7905000000', '7905000001'), 'Массовое тестовое сообщение!');
$mes = print_r($list, true);
echo "<h2>Send SMS Bulk: {$mes}</h2>";
$result = $devinoSMS->getSMSStatus($id);
$mes = print_r($result, true);
echo "<h2>SMS Status: {$mes}</h2>";
$result = $devinoSMS->getStatistics('2015-07-09T09:00:00', '2015-07-09T19:00:00');
$mes = print_r($result, true);
echo "<h2>Get Message statistics: {$mes}</h2>";
$result = $devinoSMS->getInbox('2015-07-09T09:00:00', '2015-07-09T19:00:00');
$mes = print_r($result, true);
echo "<h2>Get Message Inbox: {$mes}</h2>";
} catch (\SmsClient\DevinoSMS\Exception $e) {
echo $e->getMessage();
}
TODO
- 实现DI和正常接口
- 将设置移动到配置中
- 编写测试