diff --git a/README.md b/README.md index 72e93d2..1141502 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,12 @@ php artisan vendor:publish --tag=alfa-bank-config ALFA_BAAS_ENVIRONMENT=sandbox # или production ALFA_BAAS_CLIENT_ID=your-client-id ALFA_BAAS_CLIENT_SECRET=your-client-secret +# URL в вашем приложении, на который вернется пользователь после входа (должен совпадать с настройками в Портале) +ALFA_BAAS_REDIRECT_URI=https://your-app.com/alfa/callback ALFA_BAAS_CERT_PATH=storage/certs/baas_cert.pem ALFA_BAAS_KEY_PATH=storage/certs/baas_key.pem +# Путь к корневым сертификатам (или 'false' для отключения проверки SSL в sandbox) +ALFA_BAAS_CA_BUNDLE=false # Опционально: Ключи для CMS-подписи (если отличаются от транспортных) # ALFA_BAAS_SIGNING_CERT_PATH=storage/certs/sign_cert.pem @@ -76,6 +80,7 @@ ALFA_SBP_ENVIRONMENT=sandbox # или production ALFA_SBP_ALIAS=your-key-name-alias ALFA_SBP_CERT_PATH=storage/certs/sbp_cert.pem ALFA_SBP_KEY_PATH=storage/certs/sbp_key.pem +ALFA_SBP_CA_BUNDLE=false # --- Webhooks --- ALFA_WEBHOOK_USER=alfa @@ -94,8 +99,10 @@ return [ 'environment' => env('ALFA_BAAS_ENVIRONMENT', 'sandbox'), 'client_id' => env('ALFA_BAAS_CLIENT_ID'), 'client_secret' => env('ALFA_BAAS_CLIENT_SECRET'), + 'redirect_uri' => env('ALFA_BAAS_REDIRECT_URI'), 'certificate_path' => env('ALFA_BAAS_CERT_PATH'), 'private_key_path' => env('ALFA_BAAS_KEY_PATH'), + 'ca_bundle' => env('ALFA_BAAS_CA_BUNDLE'), // ... ], 'sbp' => [ @@ -103,6 +110,7 @@ return [ 'key_name_alias' => env('ALFA_SBP_ALIAS'), 'certificate_path' => env('ALFA_SBP_CERT_PATH'), 'private_key_path' => env('ALFA_SBP_KEY_PATH'), + 'ca_bundle' => env('ALFA_SBP_CA_BUNDLE'), // ... ], 'webhook' => [ @@ -193,6 +201,23 @@ $newAuth = $baas->refreshAccessToken($savedRefreshToken); $baas->authenticate($newAuth); ``` +**Пример обработки callback в Laravel:** +```php +// routes/web.php +Route::get('/alfa/callback', function (Request $request, AlfaBankConnector $baas) { + $code = $request->query('code'); + + // Обмениваем временный код на постоянные токены + $authenticator = $baas->getAccessToken($code); + + // Сохраняем refresh_token в БД для будущих обновлений сессии + $refreshToken = $authenticator->getRefreshToken(); + auth()->user()->update(['alfa_refresh_token' => $refreshToken]); + + return "Авторизация в Альфа-Банке прошла успешно!"; +}); +``` + Полный пример: [examples/13_h2h_auth_service.php](examples/13_h2h_auth_service.php) ### 4. Генерация Client Secret (Утилита)