47 lines
1.6 KiB
PHP
47 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use Apoloz\AlfaBank\AlfaBank;
|
|
use Apoloz\AlfaBank\Enums\Environment;
|
|
use Apoloz\AlfaBank\Requests\Files\UploadFileRequest;
|
|
|
|
/**
|
|
* Пример загрузки файла для KYC (Знай своего клиента).
|
|
* Сначала создается бенефициар, банк возвращает ссылку для загрузки паспорта.
|
|
* Затем SDK загружает файл по этой ссылке.
|
|
*/
|
|
|
|
$baas = AlfaBank::baas(
|
|
certificatePath: __DIR__ . '/../tests/test_cert.pem',
|
|
privateKeyPath: __DIR__ . '/../tests/test_key.pem',
|
|
environment: Environment::SANDBOX
|
|
);
|
|
|
|
// 1. Предположим, мы получили ссылку из ответа CreateBeneficiaryRequest
|
|
$uploadUrl = 'https://baas.alfabank.ru/filebox/secure-file-transfer/12345?X-Amz-Signature=...';
|
|
|
|
// 2. Открываем файл
|
|
$filePath = __DIR__ . '/../tests/test_cert.pem'; // Для примера берем любой файл
|
|
$fileResource = fopen($filePath, 'r');
|
|
|
|
try {
|
|
// 3. Загружаем файл методом PUT (как требует Alfa Bank S3 Proxy)
|
|
$response = $baas->send(new UploadFileRequest($uploadUrl, $fileResource));
|
|
|
|
if ($response->status() === 200) {
|
|
echo "Файл успешно загружен в банк!\n";
|
|
} else {
|
|
echo "Ошибка загрузки: " . $response->body() . "\n";
|
|
}
|
|
} catch (\Exception $e) {
|
|
echo "Ошибка: " . $e->getMessage() . "\n";
|
|
} finally {
|
|
if (is_resource($fileResource)) {
|
|
fclose($fileResource);
|
|
}
|
|
}
|
|
|