smsclub / php-new
用于操作 SMS Club API 的类
Requires
- php: ~5.4|~7.0
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-28 05:26:07 UTC
README
用于操作 SMS Club API 的类。
连接服务
要安装服务,需要在文件开头添加类自动加载器。
require_once 'smsclub_api/autoload.php';
然后声明类
$api = new \SmsclubApi\Services\ApiService([ 'token' => 'your_token', // Токен пользователя 'login' => 'your_login', // Логин пользователя 'password' => 'your_password' // Пароль пользвоателя ]);
使用
账户
查看余额
要查看余额,需要调用方法 $api->getBalance();
。如果成功,将返回一个接口对象 BalanceInterface
,如果出错,将返回 false
。
示例
$balance = $api->getBalance(); if ($balance) { // Получить остаток на балансе var_dump($balance->getMoney()); // Получить валюту аккаунта var_dump($balance->getCurrency()); }
获取用于发送短信的阿尔法名称列表
要获取阿尔法名称列表,需要调用方法 $api->getSmsOriginators();
。如果成功,将返回一个接口对象数组 OriginatorInterface
,如果出错,将返回 false
。
示例
$originators = $api->getSmsOriginators(); if ($originators) { foreach($originators as $originator) { // Получить ID отправителя var_dump($originator->getId()); // Получить имя отправителя var_dump($originator->getName()); } }
发送消息
发送短信
要发送短信,需要创建一个实现 SmsInterface
的对象,并将其传递给服务 API 的 sendSms($sms)
方法。调用 sendSms($sms)
方法将返回一个接口对象数组 SendResponseInterface
,如果出错,将返回 false
。
服务包含一个实现 SmsInterface
的对象 - Sms
。
示例
$sms = new \SmsclubApi\Classes\Sms(); $sms // Устанавливаем отправителя ->setOriginator(new \SmsclubApi\Classes\Originator('InetShop')) // Устанавливаем номера получателей // Если получатель один, следует указывать один елемент массива ->setPhones(['380123456789', '380123456780']) // Устанавливаем текст сообщения ->setMessage('Message text') $result = $api->sendSms($sms); if ($result) { foreach($result as $item) { // Получить ID сообщения от SMS Club var_dump($item->getId()); // Получить номер на которой отправлено СМС var_dump($item->getNumber()); } }
发送 Viber 消息
要发送 Viber 消息,需要创建一个实现 ViberMessageInterface
的对象,并将其传递给服务 API 的 sendViber($viberMessage)
方法。调用 sendViber($viberMessage)
方法将返回一个接口对象数组 SendResponseInterface
,如果出错,将返回 false
。
服务包含一个实现 ViberMessageInterface
的对象 - Sms
。
示例
$viberMessage = new \SmsclubApi\Classes\ViberMessage(); $viberMessage // Устанавливаем отправителя ->setOriginator(new \SmsclubApi\Classes\Originator('InetShop')) // Устанавливаем номера получателей // Если получатель один, следует указывать один елемент массива ->setPhones(['380123456789', '380123456780']) // Устанавливаем текст сообщения ->setMessage('Message text'); $result = $api->sendViber($viberMessage); if ($result) { foreach($result as $item) { // Получить ID сообщения от SMS Club var_dump($item->getId()); // Получить номер на которой отправлено СМС var_dump($item->getNumber()); } }
获取用于发送 Viber 消息的阿尔法名称列表
要获取阿尔法名称列表,需要调用方法 $api->getViberOriginators();
。如果成功,将返回一个接口对象数组 OriginatorInterface
,如果出错,将返回 false
。
示例
$originators = $api->getViberOriginators(); if ($originators) { foreach($originators as $originator) { // Получить ID отправителя var_dump($originator->getId()); // Получить имя отправителя var_dump($originator->getName()); } }
获取状态
状态常量和其描述
建议使用类 StatusHandler
的常量来验证状态
SMS_ENROUTE_STATUS
- 消息已发送;SMS_DELIVRD_STATUS
- 消息已投递;SMS_REJECTED_STATUS
- 消息被系统拒绝(黑名单或其他过滤器);SMS_EXPIRED_STATUS
- 生存期已过,消息未投递;SMS_UNDELIV_STATUS
- 无法投递消息。
获取短信状态
要获取短信状态,需要调用方法 getSmsStatuses([...])
并传递 SMS Club 系统中短信的 ID 数组。调用该方法将返回一个接口对象数组 SmsStatusInterface
,如果出错,将返回 false
。
示例
$result = $api->getSmsStatuses(['111222333', '444555666']); if ($result) { foreach($result as $item) { // Получить ID СМС в системе SMS Club var_dump($result->getId()); // Получить статус сообщения var_dump($result->getStatus()); } }
可能的状态度列表
StatusHandler::SMS_ENROUTE_STATUS
(Message enroute.
) – 消息已发送;StatusHandler::SMS_DELIVRD_STATUS
(Message delivered.
) – 消息已投递;StatusHandler::SMS_EXPIRED_STATUS
(Message expired.
) – 生存期已过,消息未投递;StatusHandler::SMS_UNDELIV_STATUS
(Message undelivered.
) – 无法投递消息;StatusHandler::SMS_REJECTED_STATUS
(Message rejected.
) – 消息被系统拒绝(黑名单或其他过滤器)。
注意:为了正确验证状态,应使用类 StatusHandler
的常量,而不是文本值。
获取 Viber 状态
要获取 Viber 消息的状态,需要调用方法 getViberStatuses([...])
并传递 SMS Club 系统中 Viber 消息的 ID 数组。调用该方法将返回一个接口对象数组 ViberStatusInterface
,如果出错,将返回 false
。
示例
$result = $api->getViberStatuses(['111222333', '444555666']); if ($result) { foreach($result as $item) { // Получить ID Viber сообщения в системе SMS Club var_dump($result->getId()); // Получить статус Viber сообщения var_dump($result->getStatus()); // Получить дополнительный статус var_dump($result->getAdditionalStatus()); } }
可能的状态度列表
StatusHandler::SMS_ENROUTE_STATUS
(Message enroute.
) - 消息已发送;StatusHandler::SMS_DELIVRD_STATUS
(Message delivered.
) – 消息已投递;StatusHandler::SMS_EXPIRED_STATUS
(Message expired.
) – 生存期已过,消息未投递;StatusHandler::SMS_UNDELIV_STATUS
(Message undelivered.
) – 无法投递消息;StatusHandler::SMS_REJECTED_STATUS
(Message rejected.
) – 消息被系统拒绝(黑名单或其他过滤器)。
可能的其他额外状态列表
已读
– 用户已阅读消息;已由接收者屏蔽
– 用户屏蔽了来自指定阿尔法名称的消息。未注册
– 用户手机设备上未安装最新的 Viber 应用程序。不支持群发
– 对于用户移动设备(通常是平板电脑)没有预设 Viber 群发功能。黑名单
— 电话号码在黑名单中,对其群发被禁止。垃圾邮件
— 由于疑似垃圾邮件,消息发送被阻止。审查
— 消息中检测到不文明用语或禁用词。接收者号码不正确
— 输入了错误的用户号码。禁止的运营商
— 禁止向该运营商的号码发送消息。
重要!附加状态仅具有信息性质,并且可能由 SMS Club 服务端更改。不要使用附加状态进行程序逻辑(例如比较、选择等)。
注意:为了正确验证状态,应使用类 StatusHandler
的常量,而不是文本值。
错误处理
调用负责 SMS Club 服务请求的方法时,返回值可能为 false
,这表示存在错误。要获取错误列表,请使用方法 getErrors()
。
为了检查是否存在错误,应使用方法 hasErrors()
。
方法 getErrors()
返回一个包含 ErrorInterface
接口对象的数组。
ErrorInterface
接口的方法
getCode()
- 获取错误代码;getMessage()
- 获取错误消息;
示例
$balance = $api->getBalance(); if (!$balance) { foreach($api->getErrors() as $error) { // Получить код ошибки var_dump($error->getCode()); // Получить сообщение ошибки var_dump($error->getMessage()); } } // Или: if ($api->hasErrors()) { foreach($api->getErrors() as $error) { // Получить сообщение ошибки var_dump($error->getCode()); // Получить сообщение ошибки var_dump($error->getCode()); } }
可用的错误代码(描述见工作文档)
ErrorHandler::SMS_PHONE_EMPTY
(101
) - 未填写接收者号码;ErrorHandler::SMS_MESSAGE_EMPTY
(102
) - 未填写消息文本;ErrorHandler::SMS_SRC_ADDR_EMPTY
(103
) - 未填写消息发送者;ErrorHandler::SMS_INVALID_PHONE
(104
) - 接收者号码不正确;ErrorHandler::SMS_INVALID_ID_SMS
(105
) - 消息 ID 不正确;ErrorHandler::SMS_UNAUTHORIZED
(106
) - 认证数据不正确;ErrorHandler::SMS_VALIDATION
(107
) - 数据验证错误;ErrorHandler::SMS_TOO_MANY_QUERIES
(108
) - 超过请求限制;ErrorHandler::SMS_SERVICE_UNAVAILABLE
(109
) - 服务不可用;ErrorHandler::VIBER_ACCOUNT
(110
) - 从该账户发送 Viber 群发不可用;ErrorHandler::VIBER_SYSTEM_ERROR
(111
) - 系统错误;ErrorHandler::VIBER_NO_MONEY
(112
) - 资金不足;ErrorHandler::VIBER_ANY_CORRECT_PHONES
(113
) - 接收者号码不正确;ErrorHandler::VIBER_TEXT
(114
) - 消息文本不正确;ErrorHandler::VIBER_UPLOAD_IMG
(115
) - 上传图像时出错;ErrorHandler::VIBER_SENDER
(116
) - 发送者不正确;ErrorHandler::VIBER_SMS
(117
) - 不正确的 SMS 消息(级联发送);ErrorHandler::VIBER_INCORRECT_PHONES
(118
) - 接收者号码不正确;