forked from apoloz/alfa-bank-sdk
67 lines
2.2 KiB
PHP
67 lines
2.2 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use Apoloz\AlfaBank\AlfaBank;
|
|
use Apoloz\AlfaBank\Enums\Environment;
|
|
|
|
// 1. Initialize
|
|
// CERTIFICATES:
|
|
// - Sandbox: Provided by bank via email or portal (often a .pfx or zip).
|
|
// - Production: Generated by YOU (openssl), public part sent to bank for activation.
|
|
$baas = AlfaBank::baas(
|
|
certificatePath: __DIR__ . '/certs/client.cer',
|
|
privateKeyPath: __DIR__ . '/certs/private.key',
|
|
environment: Environment::SANDBOX,
|
|
caBundlePath: __DIR__ . '/certs/russian_trusted_sub_ca.crt' // Optional: for trusted chain validation
|
|
);
|
|
|
|
try {
|
|
echo "Authenticating...\n";
|
|
|
|
// AUTHENTICATION:
|
|
// client_id: From Developer Portal (App Settings)
|
|
// client_secret: From Developer Portal (App Settings -> Key Icon) OR generated via SDK (examples/14_generate_client_secret.php)
|
|
|
|
// METHOD A: Standard Client Credentials (for simple services)
|
|
// $baas->login(
|
|
// clientId: 'your-client-id-uuid',
|
|
// clientSecret: 'your-client-secret-string'
|
|
// );
|
|
|
|
// METHOD B: Authorization Code Flow (H2H) (REQUIRED for Nominal Accounts)
|
|
// See examples/13_h2h_auth_service.php for the full setup
|
|
|
|
// We re-initialize with auth credentials if we didn't pass them initially
|
|
$baas = AlfaBank::baas(
|
|
certificatePath: __DIR__ . '/certs/client.cer',
|
|
privateKeyPath: __DIR__ . '/certs/private.key',
|
|
environment: Environment::SANDBOX,
|
|
clientId: 'your-client-id',
|
|
clientSecret: 'your-client-secret',
|
|
redirectUri: 'https://...'
|
|
);
|
|
|
|
// Now you can use OAuth methods:
|
|
// $url = $baas->getAuthorizationUrl();
|
|
// or
|
|
// $baas->refreshAccessToken('saved_refresh_token');
|
|
|
|
echo "Authentication Configured!\n";
|
|
|
|
// 2. Create a Beneficiary (Counterparty)
|
|
echo "Creating Beneficiary...\n";
|
|
|
|
// In a real app, use the DTOs
|
|
// $payload = new CreateBeneficiaryRequestData(...);
|
|
// $baas->send(new CreateBeneficiaryRequest($payload));
|
|
|
|
echo "Beneficiary Request Sent (Mock).\n";
|
|
|
|
} catch (\Exception $e) {
|
|
echo 'Error: ' . $e->getMessage() . "\n";
|
|
if ($e instanceof \Apoloz\AlfaBank\Exceptions\AlfaBankException) {
|
|
echo 'API Code: ' . $e->getErrorCode() . "\n";
|
|
}
|
|
}
|