6

АльфаБанк vs Т-Банк API

Вы что курили? Дайте мне тоже.

Вы что курили? Дайте мне тоже.

После проведения небольшой интеграции api альфабанка, хочется узнать, что они там курили и кто их поставщик.

Для сравнения сразу опишу как происходит интеграция по api c Т-Банк. Заходим в лк -> интеграции -> выпускаем токен ( https://developer.tbank.ru/docs/intro/manuals/ ). Профит. Переходим в документацию https://developer.tbank.ru/docs/api и быстро интегрируемся.

Фигак, фигак и в продакшн

Фигак, фигак и в продакшн

В альфе все не просто, но надо сказать, что служба поддержки активно помогает, люди там есть и они заинтересованны в сотрудничестве. Однако, что бы полностью разобраться с авторизацией я потратил 3 дня (с учетом всех переписок) и еще 1 день для переключения на продуктовую среду.

Огромным минусом является, то что есть только 1 рефреш токен и не возможно настроить одновременную интеграцию на разных устройствах.

Первое, что вам нужно сделать, это написать на e-mail письмо со своими данными и просьбой предоставить доступ к API. В ответ придет письмо со всеми данными для подключения к тестовой среде. Документация https://developers.alfabank.ru/products/alfa-api/documentati... .

Теперь необходимо получить client_secret https://developers.alfabank.ru/products/alfa-api/documentati... .

Нет, это еще не все, получаем authorization_code https://developers.alfabank.ru/products/alfa-api/documentati...

Уф, меняем authorization_code на refresh_token. Код для примера, сам по себе он работать не будет. В ответе access_token.

use GuzzleHttp\Client;

/**
* Обмен authorization_code на refresh_token
* return void
*/
public function authorizationCodeToRefreshToken($authorization_code)
{
try {
$res = $this->client->request('POST', $this->getApiUrl() . '/oidc/token',
[
'form_params' => [
'grant_type' => 'authorization_code',
'code' => $authorization_code,
'client_id' => $this->getClientId(),
'client_secret' => $this->getClientSecret(),
'redirect_uri' => 'http://localhost',
'code_verifier' => 'string',
],
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/x-www-form-urlencoded'
],
'verify' => false, // без этого будет ошибка ssl
'cert' => $this->getSert(), // путь к сертификату
'ssl_key' => $this->getKey() // путь к ключу
]
);
} catch (\Throwable $e) {
$res = $e->getResponse();
}

if ($res->getStatusCode() != 200) {
throw new ServerErrorHttpException($res->getStatusCode() . ' ' . $res->getBody()->getContents());
}

$json = json_decode($res->getBody(), true);

$authToken = $json['access_token'] ?? '';

if (!$authToken) {
throw new ServerErrorHttpException('Не удалось получить access_token');
}

// Закидываем access_token в кэш а рефреш в бд
$cache = Yii::$app->cache;
$expires_in = $json['expires_in'];
$cache->set(self::TOKEN_NAME, $authToken, $expires_in - 600 ?? 3000);
Settings::update('ALFA', 'ALFA_REFRESH_TOKEN', $json['refresh_token'] ?? '');

return $authToken;
}

Когда access_token просрочится мы по рефрештокену получим новый, тут уже все стандартно.

Теперь можно свободно работать с тестовым api.

/**
* Получение информации о компании
* @return array
* @throws GuzzleException
* @throws ServerErrorHttpException
*/
public function companyInfo(): array
{
try {
$res = $this->client->request('GET', $this->getApiUrl() . '/api/v2/customer-info',
[
'verify' => false,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $this->getToken()
],
'cert' => $this->getSert(),
'ssl_key' => $this->getKey()
]
);
} catch (GuzzleException $e) {
$res = $e->getResponse();
} catch (\Throwable $e) {
throw new ServerErrorHttpException($e->getMessage());
}

if ($res->getStatusCode() != 200) {
throw new ServerErrorHttpException($res->getStatusCode() . ' ' . $res->getBody()->getContents());
}

return json_decode($res->getBody()->getContents(), true);
}

После того как интеграция будет готова, нужно снова написать на email, из альфы пришлют инструкцию по генерации продуктового сертификата. Отправляем сертификат в банк и в ответ приходит новый сертификат и ключ из альфы. Ура, можно указывать боевой url, прописывать боевые сертификаты и начинать работу.

Получается на интеграцию альфы надо тратить на 1 неделю (округляю) больше чем на интеграцию тбанка. Если компенсация (брутто) программиста будет 250 тыс, то она будет стоить на 62 000 руб дороже чем интеграция с Т-Банк.

62 000 рублей. Я не знаю сколько это в футбольных полях, но лучше их потратить на себя.

Стоит ли сделать подобный пост со сравнением интернет-эквайринга Т-Банка и Альфы? Там чаша весов больше склоняется к альфе, хотя интересных моментов тоже предостаточно)

Молодые предприниматели

3.8K постов16.1K подписчиков

Правила сообщества

Запрещены: флуд, спам, хамство...

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества