Верификация -> Выплата */ // 1. Инициализация SDK // Сертификаты (Transport Certs): // Получены от банка (Sandbox) или сгенерированы вами и активированы банком (Production). $baas = AlfaBank::baas( certificatePath: 'transport.crt', privateKeyPath: 'transport.key' ); // Данные для подписи (в реальном приложении загружаются из защищенного хранилища) $signCert = file_get_contents('signing.crt'); $signKey = file_get_contents('signing.key'); try { // Auth: Nominal Accounts require H2H Flow // client_id: Из Портала разработчика // client_secret: Из Портала разработчика (глаз) или сгенерирован через SDK (examples/14_generate_client_secret.php) $auth = AlfaBank::auth( 'client_id', 'client_secret', 'https://callback', 'transport.crt', 'transport.key' ); $auth->refreshToken('saved_refresh_token_from_db'); // --- ЭТАП 1: Создание Бенефициара (Контрагента) --- $benData = new CreateBeneficiaryRequestData( type: 'FL_RESIDENT', countryOfTaxResidence: 'RU', name: 'Иванов Иван', addresses: AddressData::collect([ new AddressData('REGISTRATION_ADDRESS', 'Moscow', 'RU') ]) ); // Автоматическая подпись $benData->sign($baas->getSigner()); $response = $baas->send(new CreateBeneficiaryRequest($benData)); $beneficiaryId = $response->dto()->id; echo "Beneficiary Created: $beneficiaryId\n"; // --- ЭТАП 2: Идентификация Входящего Платежа --- // После создания банк должен проверить бенефициара echo "2. Запуск верификации (скоринга)..."; $baas->send(new ScoreBeneficiaryRequest($beneficiaryId)); echo "Скоринг инициирован.\n"; // --- ЭТАП 3: Выплата (Payoff) --- // Когда бенефициар проверен, можно делать выплату echo "3. Создание выплаты..."; $payoffData = new PayoffRequestData( type: 'PAYMENT_ORDER', accountNumber: '40702810...', // Ваш номинальный счет recipient: new RecipientData( name: 'Иванов Иван Иванович', inn: '771234567890' ), payoutRequisite: new PayoutRequisiteData( type: 'ACCOUNT', accountNumber: '40817810...', // Личный счет Иванова bik: '044525593' ), amount: '1000.50', purpose: 'Выплата по договору комиссии', digestSignatures: DigestSignatureData::collect([ [ 'base64Encoded' => '...', // Здесь должна быть подпись тела выплаты 'signatureType' => 'cms' ] ], DataCollection::class) ); $payoffResponse = $baas->send(new CreatePayoffRequest($payoffData)); echo "Выплата создана. ID: " . $payoffResponse->dto()->payoffId . "\n"; } catch (\Exception $e) { echo "Ошибка: " . $e->getMessage() . "\n"; }