onamanzi/altiria-sms-php-client

Altiria的PHP SMS发送客户端

dev-master / 1.0.x-dev 2024-05-24 18:36 UTC

This package is auto-updated.

Last update: 2024-09-24 19:16:53 UTC


README

Altiria, PHP SMS发送客户端

Altiria SMS PHP是最简化的Altiria PHP SMS API集成客户端。

  • 单个SMS发送
    • 简单
    • 拼接
    • 投递确认
    • 自定义发送者
  • 信用查询

这个库使用 composer 并符合 PSR-4 规范。

使用方法

您需要有一个Altiria的发送账户。如果您还没有,

注册以创建一个测试账户

API文档

要求

安装

推荐通过Composer安装Altiria PHP客户端。您可以通过两种方式完成:

通过命令行

composer require altiria/sms-php-client

编辑composer.json文件并更新项目

在这种情况下,请将以下片段添加到composer.json文件中。

"require": {
	"altiria/sms-php-client": "1.0.2"
}

然后,通过以下命令行指令更新项目:

composer install

使用示例

SMS发送

以下将描述使用此库进行SMS发送的各个可能性。

基本示例

这是进行SMS发送的最简单选项。

use \AltiriaSmsPhpClient\AltiriaClient;
use \AltiriaSmsPhpClient\AltiriaModelTextMessage;
use \AltiriaSmsPhpClient\Exception\GeneralAltiriaException;

try {
    //Personaliza las credenciales de acceso
    $client = new AltiriaClient('user@mydomain.com', 'mypassword');
    $textMessage = new AltiriaModelTextMessage('346XXXXXXXX', 'Mensaje de prueba');
    $client-> sendSms($textMessage);
    echo '¡Mensaje enviado!';
} catch (GeneralAltiriaException $exception) {
    echo 'Mensaje no aceptado:'.$exception->getMessage();
}

带有自定义超时时间的基本示例

允许设置响应时间(毫秒)。如果超出,将抛出 ConnectionException。默认响应时间是10秒,但可以在1到30秒之间调整。

use \AltiriaSmsPhpClient\AltiriaClient;
use \AltiriaSmsPhpClient\AltiriaModelTextMessage;

try {
    //Personaliza las credenciales de acceso
    $client = new AltiriaClient('user@mydomain.com', 'mypassword', false, 5000);
    $textMessage = new AltiriaModelTextMessage('346XXXXXXXX', 'Mensaje de prueba');
    $client-> sendSms($textMessage);
    echo '¡Mensaje enviado!';
} catch (\AltiriaSmsPhpClient\Exception\AltiriaGwException $exception) {
    echo 'Mensaje no aceptado:'.$exception->getMessage();
    echo 'Código de error: '.$exception->getStatus();
} catch (\AltiriaSmsPhpClient\Exception\JsonException $exception) {
    echo 'Error en la petición:'.$exception->getMessage();
} catch (\AltiriaSmsPhpClient\Exception\ConnectionException $exception) {
    if ($exception->getMessage().strpos('RESPONSE_TIMEOUT', 0) != -1) {
        echo 'Tiempo de respuesta agotado: '.$exception->getMessage();
    } else {
        echo 'Tiempo de conexión agotado: '.$exception->getMessage();
    }
}

带有发送者的基本示例

这是添加发送者的最简单选项。在本例中,展示了如何通过APIKEY进行认证,其中"XXXXXXXXXX"是参数 apiKey,"YYYYYYYYYY"是参数 apiSecret

use \AltiriaSmsPhpClient\AltiriaClient;
use \AltiriaSmsPhpClient\AltiriaModelTextMessage;

try {
    //Personaliza las credenciales de acceso
    $client = new AltiriaClient('XXXXXXXXXX', 'YYYYYYYYYY', true);
    $textMessage = new AltiriaModelTextMessage('346XXXXXXXX', 'Mensaje de prueba', 'miRemitente');
    $client-> sendSms($textMessage);
    echo '¡Mensaje enviado!';
} catch (\AltiriaSmsPhpClient\Exception\AltiriaGwException $exception) {
    echo 'Mensaje no aceptado:'.$exception->getMessage();
    echo 'Código de error: '.$exception->getStatus();
} catch (\AltiriaSmsPhpClient\Exception\JsonException $exception) {
    echo 'Error en la petición:'.$exception->getMessage();
} catch (\AltiriaSmsPhpClient\Exception\ConnectionException $exception) {
    if ($exception->getMessage().strpos('RESPONSE_TIMEOUT', 0) != -1) {
        echo 'Tiempo de respuesta agotado: '.$exception->getMessage();
    } else {
        echo 'Tiempo de conexión agotado: '.$exception->getMessage();
    }
}

所有参数的示例

展示了使用setter方法设置所有参数的示例。

use \AltiriaSmsPhpClient\AltiriaClient;
use \AltiriaSmsPhpClient\AltiriaModelTextMessage;

try {
    //Personaliza las credenciales de acceso
    $client = new AltiriaClient('user@mydomain.com', 'mypassword');
    $client->setConnectTimeout(1000);
    $client->setTimeout(5000);
    $client->setDebug(true);
    $textMessage = new AltiriaModelTextMessage('346XXXXXXXX', 'Mensaje de prueba');
    $textMessage->setSenderId('miRemitente');
    $textMessage->setAck(true);
    $textMessage->setIdAck('idAck');
    $textMessage->setConcat(true);
    $textMessage->setEncoding('unicode');
    $textMessage->setCertDelivery(true);
    $client-> sendSms($textMessage);
    echo '¡Mensaje enviado!';
} catch (\AltiriaSmsPhpClient\Exception\AltiriaGwException $exception) {
    echo 'Mensaje no aceptado:'.$exception->getMessage();
    echo 'Código de error: '.$exception->getStatus();
} catch (\AltiriaSmsPhpClient\Exception\JsonException $exception) {
    echo 'Error en la petición:'.$exception->getMessage();
} catch (\AltiriaSmsPhpClient\Exception\ConnectionException $exception) {
    if ($exception->getMessage().strpos('RESPONSE_TIMEOUT', 0) != -1) {
        echo 'Tiempo de respuesta agotado: '.$exception->getMessage();
    } else {
        echo 'Tiempo de conexión agotado: '.$exception->getMessage();
    }
}

信用查询

这里是查询Altiria账户中SMS信用的示例。

基本示例

use \AltiriaSmsPhpClient\AltiriaClient;

try {
    //Personaliza las credenciales de acceso
    $client = new AltiriaClient('user@mydomain.com', 'mypassword');
    $credit = $client-> getCredit();
    echo 'Crédito disponible: '.$credit;
} catch (\AltiriaSmsPhpClient\Exception\AltiriaGwException $exception) {
    echo 'Solicitud no aceptada:'.$exception->getMessage();
    echo 'Código de error: '.$exception->getStatus();
} catch (\AltiriaSmsPhpClient\Exception\JsonException $exception) {
    echo 'Error en la petición:'.$exception->getMessage();
} catch (\AltiriaSmsPhpClient\Exception\ConnectionException $exception) {
    if ($exception->getMessage().strpos('RESPONSE_TIMEOUT', 0) != -1) {
        echo 'Tiempo de respuesta agotado: '.$exception->getMessage();
    } else {
        echo 'Tiempo de conexión agotado: '.$exception->getMessage();
    }
}

许可证

本库的许可证为MIT类型。有关更多信息,请参阅许可证文件。

帮助

我们使用GitHub上的问题部分来处理错误和评估新功能。如果您在集成过程中遇到任何问题,请通过以下电子邮件 soporte@altiria.com 联系我们。