Клиент для общения с 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();
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-е возвращает все поля, решили сделать все поля ответа обязательными
- Подумать о том, чтобы отказаться от enum-а src/Struct/Scope.php в пользу строк, т.к. т-банк добавляет в него внутренние значения, и мы можем получить неожиданную ошибку на prod-е