vanta / t-id-client
Pure client for t id
0.1
2025-04-21 06:12 UTC
Requires
- php: ^8.3
- brick/phonenumber: ^0.4|^0.5|^0.6
- guzzlehttp/psr7: ^2.0
- phpdocumentor/reflection-docblock: ^5.0
- phpstan/phpdoc-parser: ^1.0
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- symfony/intl: ^6.4|^7.0
- symfony/property-access: ^6.4|^7.0
- symfony/property-info: ^7.1
- symfony/serializer: ^7.1
- symfony/uid: ^6.4|^7.0
- webmozart/assert: ^1.11
- yiisoft/http: ^1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.17
- guzzlehttp/guzzle: ^7.7
- infection/infection: ^0.29.14
- nyholm/psr7: ^1.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.0
- symfony/http-client: ^6.4|^7.0
- symfony/var-dumper: ^6.4|^7.0
README
Клиент для общения с API t id.
Установка
Минимальная версия PHP: 8.3
- Выполнить
composer require vanta/t-id-client
- Обязательно установить PSR-совместимый клиент
Использование
Создание инстанса клиента:
use GuzzleHttp\Client; use Vanta\Integration\TId\Infrastructure\HttpClient\ConfigurationClient; use Vanta\Integration\TId\RestClientBuilder; $restClientBuilder = RestClientBuilder::create(new ConfigurationClient('ваш ClientId', 'ваш ClientSecret', 'https://id.tbank.ru', 'https://business.tbank.ru'), new Client()); $restUserClient = $restClientBuilder->createUserClient(); $restDocumentClient = $restClientBuilder->createDocumentClient(); $restUserStatusClient = $restClientBuilder->createUserStatusClient();
Генерация URL для авторизации пользователя:
use GuzzleHttp\Client; use Vanta\Integration\TId\Infrastructure\HttpClient\ConfigurationClient; use Vanta\Integration\TId\RestClientBuilder; RestClientBuilder::create(new ConfigurationClient('ваш ClientId', 'ваш ClientSecret', 'https://id.tbank.ru', 'https://business.tbank.ru'), new Client()); ->createAuthUrlBuilder('https://id.tbank.ru', 'ваш redirectUrl') ->build() ;
Получение данных о пользователе:
$pairKey = $restUserClient->getPairKeyByAuthorizationCode('get параметр code, из url-а, на который вернулся пользователь', 'ваш redirectUrl'); $restUserClient->getUser($pairKey->accessToken);
Тестовая среда:
use GuzzleHttp\Client; use Vanta\Integration\TId\Infrastructure\HttpClient\ConfigurationClient; use Vanta\Integration\TId\RestClientBuilder; $restDocumentClient = $restClientBuilder ->addMiddleware(new SandboxBusinessClientMiddleware()) ->createDocumentClient() ; $restUserStatusClient = $restClientBuilder ->addMiddleware(new SandboxBusinessClientMiddleware()) ->createUserStatusClient() ; $pairKey = PairKey::createSandboxPairKey(); $restDocumentClient->getAddress($pairKey->accessToken, AddressType::RESIDENCE_ADDRESS);
Тестовая среда имеет следующие ограничения:
1. Не работает url авторизации пользователя
2. Не работает запрос $restUserClient->getPairKeyByAuthorizationCode('get параметр code, из url-а, на который вернулся пользователь', 'ваш redirectUrl');
3. Не работает запрос данных пользователя $restUserClient->getUser($pairKey->accessToken);
4. API т-банка в запросе $restUserClient->getAuthIntrospect($pairKey->accessToken);,
на тесте возвращает только 1 поле: active, на prod-е возвращает все поля, решили сделать все поля ответа обязательными
todo:
- Подумать о том, чтобы отказаться от enum-а src/Struct/Scope.php в пользу строк, т.к. т-банк добавляет в него внутренние значения, и мы можем получить неожиданную ошибку на prod-е