15web / loymax-sdk
Loymax HTTP API (https://loymax.ru/) 的 PHP SDK
1.0
2024-10-01 07:32 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
- phpdocumentor/reflection-docblock: ^5.4
- psr/http-client: ^1.0
- psr/log: ^3.0
- symfony/property-access: ^6.4|^7.0
- symfony/property-info: ^6.4|^7.0
- symfony/serializer: ^6.4|^7.0
- symfony/uid: ^6.4|^7.0
- webmozart/assert: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.61
- phpstan/phpstan: ^1.11
- phpstan/phpstan-strict-rules: ^1.6
- phpunit/phpunit: ^10.5
- rector/rector: ^1.2
- vimeo/psalm: ^5.25
This package is auto-updated.
Last update: 2024-10-03 10:59:46 UTC
README
用于与忠诚度软件 Loymax 交互的 SDK。
将加快 Loymax 功能在您的产品中的实施。
安装
composer require 15web/loymax-sdk
要求
PHP 8.2 及以上版本
SDK 使用符合 PSR-18 的 HTTP 客户端,并使用符合 PSR-3 的日志记录器。
默认使用 Guzzle 作为 HTTP 客户端
使用
use Studio15\Loymax\Loymax; require __DIR__ . '/vendor/autoload.php'; $loymax = Loymax::create('https://your-project.loymax.tech'); $merchants = $loymax->publicApi()->merchants()->getByIds();
双因素认证
use Studio15\Loymax\Loymax; require __DIR__ . '/vendor/autoload.php'; $loymax = Loymax::create('https://your-project.loymax.tech'); $twoFactorToken = $loymax->authApi()->issueAccessToken( username: '79990001234', // телефон ); $token = $loymax->authApi()->confirmTwoFactorAuthentication( twoFactorAuthToken: $twoFactorToken->twoFactorAuthToken, code: '123456', // Код, полученный в SMS );
公共 API
use Studio15\Loymax\Loymax; require __DIR__ . '/vendor/autoload.php'; $loymax = Loymax::create('https://your-project.loymax.tech'); $twoFactorToken = $loymax->authApi()->issueAccessToken( username: '79990001234', // телефон ); $token = $loymax->authApi()->confirmTwoFactorAuthentication( twoFactorAuthToken: $twoFactorToken->twoFactorAuthToken, code: '123456', // Код, полученный в SMS ); /** * Получение баланса пользователя программы лояльности */ $balance = $loymax->publicApi(token: $token->accessToken)->user()->balance(); /** * Получение публичной информации о торговых точках */ $merchants = $loymax->publicApi()->merchants()->getByIds();
日志记录
所有请求和响应都将进行日志记录。
构造函数需要传递实现 Psr\Log\LoggerInterface
的客户端
Monolog 的使用示例
composer require monolog/monolog
use Monolog\Handler\StreamHandler; use Monolog\Level; use Monolog\Logger; use Studio15\Loymax\Loymax; require __DIR__ . '/vendor/autoload.php'; $baseUri = 'https://your-project.loymax.tech'; $logger = new Logger('name'); $logger->pushHandler(new StreamHandler('log/loymax-info.log', Level::Info)); $loymax = new Loymax( baseUri: $baseUri, logger: $logger, ); $merchants = $loymax->publicApi()->merchants()->getByIds();
使用自己的 HTTP 客户端
默认情况下,SDK 使用 Guzzle 作为 HTTP 客户端
Symfony HTTP 客户端 的使用示例
composer require symfony/http-client psr/http-client nyholm/psr7
use Studio15\Loymax\Loymax; use Symfony\Component\HttpClient\Psr18Client; require __DIR__ . '/vendor/autoload.php'; $baseUri = 'https://your-project.loymax.tech'; $httpClient = (new Psr18Client())->withOptions(['base_uri' => $baseUri]); $loymax = new Loymax( httpClient: $httpClient, ); $merchants = $loymax->publicApi()->merchants()->getByIds();
框架集成
Symfony
要将 Loymax
类用作服务,请将以下内容添加到 config/services.yaml
services: # ... Studio15\Loymax\Loymax: arguments: $httpClient: null $baseUri: 'https://your-project.loymax.tech'
使用 Symfony HTTP 客户端 替代 Guzzle
Laravel
将您的项目地址添加到配置中
config/services.php
<?php return [ // 'loymax' => [ 'baseurl' => env('LOYMAX_API_BASEURL', 'https://your-project.loymax.tech'), ], ];
在服务提供者中注册类以将其添加到容器中
app/Providers/AppServiceProvider.php
use Studio15\Loymax\Loymax; public function register(): void { // $this->app->bind( abstract: Loymax::class, concrete: static fn (): Loymax => Loymax::create(config('services.loymax.baseurl')), ); }
现在只需在任何地方连接 Loymax 类,例如在控制器中
use Studio15\Loymax\Loymax; class MyController extends Controller { public function merchants(Loymax $loymax) { $merchants = $loymax->publicApi()->merchants()->getByUids(); } }
更多信息
开发
Loymax SDK 是一个 MIT 许可的 Open Source 产品。
帮助项目
- 为您的 问题 创建 issue
- 发送 pull request
代码测试
运行代码检查和测试
git clone git@github.com:15web/loymax-sdk.git cd loymax-sdk composer update composer test
测试代码覆盖率
安装 https://github.com/krakjoe/pcov/blob/develop/INSTALL.md
运行
composer coverage
支持和反馈
如果您发现错误,请直接在 Github 上提问。 Loymax SDK 问题
如果您需要额外帮助,请通过 https://www.15web.ru/contacts 联系我们