faso-dev/aqilas-sms-sdk

一个非官方的SDK,通过提供一组类和函数来与API交互,以实现将AQILAS SMS REST API集成到PHP项目中。

v0.0.1 2023-01-12 15:13 UTC

This package is auto-updated.

Last update: 2024-09-29 06:29:12 UTC


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手机号的短信的投递状态。

贡献

欢迎贡献!请随意打开一个问题或发起一个拉取请求。

许可

MIT