mminotti/smsdev

使用SmsDev.com.br发送和接收短信

v0.4 2022-03-08 22:06 UTC

This package is not auto-updated.

Last update: 2024-09-19 08:10:19 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Latest version Downloads total License

使用SmsDev.com.br发送和接收短信

安装

在项目根目录中使用Composer安装此包。

composer require enricodias/smsdev

使用

使用您的API密钥创建一个新的实例

$SmsDev = new \enricodias\SmsDev('API_KEY');

设置所有日期方法中使用的任何日期格式

$SmsDev->setDateFormat('Y-m-d H:i:s'); // default is 'U', timestamp

发送短信消息

$SmsDev->send(5511988881111, 'SMS Message'); // returns true if the API accepts the message

var_dump($SmsDev->getResult()); // Returns the raw API response.

国家代码为可选。默认为55(巴西)。

电话号码验证

如果您已安装giggsey/libphonenumber-for-php包,它将用于本地验证号码。您可以在发送之前使用setNumberValidation方法禁用此功能

$SmsDev->setNumberValidation(false); // disables phone number validation

请注意,SmsDev将对发送到无效号码的消息收费。

接收短信消息

获取特定日期间隔内的未读消息

$SmsDev->setDateFormat('Y-m-d');

$SmsDev->setFilter()
            ->isUnread()
            ->dateBetween('2018-01-19', '2019-01-19')
        ->fetch();

搜索特定的消息ID

$SmsDev->setFilter()
            ->byId(2515974)
        ->fetch();

解析响应

获取消息后,您可以使用getResult()访问原始API响应,或使用函数parsedMessages()获取简化的数组

$SmsDev->setDateFormat('U'); // timestamp

$messages = $SmsDev->parsedMessages();

var_dump($messages);

/*
array(1) {
    ['date']    => '1529418914'
    ['number']  => '5511988887777'
    ['message'] => 'Message'
}
*/

日期将被转换为setDateFormat()中指定的格式。

日期过滤器

以下过滤器是等效的

$SmsDev->setFilter()
            ->dateBetween('2018-01-19', '2019-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateBetween('2018-01-19', '')
            ->dateTo('2019-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateBetween('', '2019-01-19')
            ->dateFrom('2018-01-19')
        ->fetch();

$SmsDev->setFilter()
            ->dateFrom('2018-01-19')
            ->dateTo('2019-01-19')
        ->fetch();

时区问题

API使用America/Sao_Paulo时区。在您的应用程序中使用另一个时区将迫使您在本地转换日期以获取正确的值。

例如:如果您使用UTC-4,并且收到一条新消息,它看起来像来自未来的消息,因为America/Sao_Paulo是UTC-3。

此类通过在搜索过滤器和解析消息中自动更正日期来解决此问题。只有原始API响应中的日期不会被转换。

待办事项

  • 检查已发送消息的状态。
  • 发送多条短信消息。