faso-dev / aqilas-sms-sdk
一个非官方的SDK,通过提供一组类和函数来与API交互,以实现将AQILAS SMS REST API集成到PHP项目中。
v0.0.1
2023-01-12 15:13 UTC
Requires
- faso-dev/simple-curl-client: dev-main
Requires (Dev)
- phpunit/phpunit: 9.5.*
README
一个非官方的SDK,通过提供一组类和函数来与API交互,以实现将AQILAS SMS REST API集成到PHP项目中。本包的目标是在不处理HTTP请求和JSON响应的情况下简化AQILAS SMS API的使用。
要求
在开始使用此包之前,您需要一个有效的AQILAS SMS API密钥(https://www.aqilas.com)。您还需要安装以下要求
- PHP 7.4或更高版本
- composer
- ext-json
- ext-curl
安装
您可以使用composer安装此包
composer require faso-dev/aqilas-sms-sdk
用法
安装包后,您可以在代码中使用它
<?php use FasoDev\AqilasSmsSdk\Aqilas\AqilasSMS; use FasoDev\AqilasSmsSdk\Aqilas\Config\Config; use FasoDev\AqilasSmsSdk\Aqilas\Sms\SMS; $config = Config::defineApiKey('YOUR_API_KEY') ->defineBaseUrl('https://www.aqilas.com/api/') ->defineVersion('v1') ->defineSmsEndpoint('/sms') ; $aqilas = AqilasSMS::loadConfig($config); $sms = SMS::from('56000') ->to('702000000') ->content('Hello world') ; $response = $aqilas->send($sms);
- 使用
Config
类来配置客户端,例如定义API密钥、基本URL、版本和短信端点。 - 使用
AqilasSMS
类来加载配置并与API交互。 - 使用
SMS
类来定义要发送的短信。 - 使用
send()
方法来发送短信。此方法接受一个SMS
实例作为参数,并返回一个包含API响应的FasoDev\AqilasSmsSdk\Aqilas\Response\SMSResponse
实例。
AqilasSMS
使用AqilasSMS
类来加载配置,并允许您使用以下方法与API交互
send(SMS $sms)
:此方法用于发送短信。此方法接受一个SMS
实例作为参数,并返回一个包含API响应的FasoDev\AqilasSmsSdk\Aqilas\Response\SMSResponse
实例。balance()
:此方法用于获取账户余额。此方法返回一个包含API响应的FasoDev\AqilasSmsSdk\Aqilas\Response\BalanceResponse
实例。deliveryStatus(string $bulkId)
:此方法用于获取短信的状态。此方法接受短信的bulk_id作为参数,并返回一个包含API响应的FasoDev\AqilasSmsSdk\Aqilas\Response\DeliveryResponse
实例。
消息
有时,在发送消息之前,您可能想要验证消息内容。如果需要这样做,您可以使用FasoDev\AqilasSmsSdk\Aqilas\Message\Message
类
<?php use FasoDev\AqilasSmsSdk\Aqilas\Message\Message; use FasoDev\AqilasSmsSdk\Exceptions\MessageViolationConstraintException; try { $message = (new Message('Hello world')) ->rejectUnicode() // if you want only ASCII characters ->rejectEmojis() // if you don't allow emojis in your messages ->maxSMS(2) // if you want to limit the number of SMS from the message ->create() ; } catch (MessageViolationConstraintException $e) { echo $e->getMessage(); }
Message
类有以下方法
rejectUnicode()
:如果消息包含Unicode字符,则拒绝消息。rejectEmojis()
:如果消息包含表情符号,则拒绝消息。maxSMS(int $max)
:如果消息包含超过$max
条短信,则拒绝消息。create()
:创建消息并返回内容作为字符串。请注意,如果消息不遵守约束,此方法将抛出MessageViolationConstraintException
。
响应
-
使用
FasoDev\AqilasSmsSdk\Aqilas\Response\SMSResponse
类来表示发送短信时API的响应。您可以从响应中获取以下信息bulkId()
:短信的bulk ID。cost()
:短信的成本。currency()
:成本的货币。message()
:响应的消息。status()
:响应的状态。
-
使用
FasoDev\AqilasSmsSdk\Aqilas\Response\BalanceResponse
类来表示获取余额时API的响应。您可以从响应中获取以下信息success()
: 响应的成功状态。solde()
: 您账户的余额。currency()
: 余额的货币。formatedSolde()
: 使用货币格式化的账户余额。formatedCurrency()
: 以货币(符号)
的形式格式化的账户货币。
-
使用
FasoDev\AqilasSmsSdk\Aqilas\Response\DeliveryResponse
类来表示当您想要获取短信的投递状态时的API响应。您可以从响应中获取以下信息data()
: 响应的数据。phone(string $phoneNumber)
: 发送到$phoneNumber
手机号的短信的投递状态。
贡献
欢迎贡献!请随意打开一个问题或发起一个拉取请求。