lox24eu/lox24_api_client

LOX24 SMS网关API v2官方客户端

0.2.2 2024-05-31 10:41 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:00 UTC


README

文档

LOX24 API的文档可以在[这里][https://doc.lox24.eu]找到。

版本

lox24-client-php使用语义版本控制对所有变更进行版本管理。查看此文档以获取详细信息。

支持的PHP版本

此库支持以下PHP实现

  • PHP 8.2
  • PHP 8.3

安装

兼容PSR-7和PSR-17库

此项目兼容一系列遵循PSR-17PSR-18标准的库。以下是一些提供对上述标准强大支持的知名库列表,确保您的应用程序HTTP客户端实现具有灵活性和互操作性。

您可以使用自己的或任何PSR-17/PSR-18兼容的库,例如

使用Composer安装

lox24-client-php作为lox24eu/lox24_api_client包在Packagist上提供

composer require lox24eu/lox24_api_client

使用Guzzle HTTP客户端的用法示例

将Guzzle HTTP客户端实现添加到您的项目中

composer require lox24eu/lox24_api_client

发送短信的PHP脚本示例,使用LOX24的REST API

// Send an SMS using LOX24's REST API and PHP
<?php

include 'vendor/autoload.php';

use GuzzleHttp\Client as GuzzleClient;
use GuzzleHttp\Psr7\HttpFactory as GuzzleRequestFactory;
use lox24\api_client\api\Lox24Api;
use lox24\api_client\api\sms\SmsItemRequest;
use lox24\api_client\Client;
use lox24\api_client\Config;
use lox24\api_client\exceptions\access\AccessException;
use lox24\api_client\exceptions\ApiException;
use lox24\api_client\exceptions\ClientException;
use lox24\api_client\exceptions\resource\ResourceException;
use lox24\api_client\exceptions\service\ServiceException;

$token = 'your_token_here';
$config = new Config($token);
$httpClient = new GuzzleClient();
$requestFactory = new GuzzleRequestFactory();
$client = new Client($httpClient, $requestFactory, $config);
$api = new Lox24Api($client);


$sms = new SmsItemRequest(
    'sender',
    '+1234567890',
    'sms text'
);

try {
    $response = $api->sms()->sendSms($sms, true);
    echo "ID: {$response->getId()}\n";
    echo "Price: {$response->getPrice()}";
} catch (AccessException $e) {
    echo "Access error: {$e->getMessage()}\n";
} catch (ResourceException $e) {
    echo "Resource error: {$e->getMessage()}\n";
} catch (ServiceException $e) {
    echo "Service error: {$e->getMessage()}\n";
} catch (ClientException $e) {
    echo "Client error: {$e->getMessage()}\n";
} catch (ApiException $e) {
    echo "Server error: {$e->getMessage()}\n";
}

用法示例

更多示例,请参阅示例目录。

LOX24 SMS网关客户端中的异常处理

LOX24 SMS网关客户端库定义了几个异常来优雅地处理各种错误场景。所有自定义异常类都扩展了基本ApiException类。

访问异常(AccessException)

在发生与访问相关的通用错误时抛出。

  • AccountBlocked:当用户账户因违反政策或可疑活动被封锁时抛出。
  • InvalidCredentials:当提供的凭据无效时抛出。
  • IpBlocked:当来自当前IP的请求被阻止时抛出。
  • NotEnoughFundsPerOperation:当账户余额不足以执行操作时抛出。
  • TwoManyRequests:当超出速率限制时抛出。

资源异常(ResourceException)

与资源相关错误的通用异常。

  • BadRequest:当服务器无法处理请求(客户端错误)时抛出。
  • ResourceNotFound:当请求的资源找不到时抛出。
  • UnprocessableRequest:当服务器理解请求但无法处理包含的指令时抛出。

服务异常(ServiceException)

在发生与服务相关的通用错误时抛出。

  • RequestException:当与服务请求相关的问题时抛出。
  • UnexpectedException:当遇到意外条件时抛出,例如服务器不可用。

客户端异常(ClientException)

此异常是代表由于客户端问题而发生的错误的ApiException类型。它作为客户端相关问题的基类异常。例如,当客户端的请求格式不正确或客户端逻辑在向服务器发送请求之前失败时,应抛出此异常。

处理异常

以下是如何在您的应用程序中捕获和处理这些异常的方法

try {
    // Code that interacts with the SMS Gateway Client
} catch (ApiException $e) {
    // Handle all exceptions derived from ApiException
    error_log($e->getMessage());
    // Additional error handling...
}

获取帮助

如果您发现库中的错误或希望添加新功能,请直接在此仓库中提交问题或拉取请求!