<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use AlphaPay\AlphaPayClient;
use AlphaPay\Exceptions\AlphaPayException;
$alphapay = new AlphaPayClient(getenv('ALPHAPAY_SECRET_KEY'));
try {
// 1. Créer le lien (côté serveur, clé secrète) -- options avancées incluses.
$link = $alphapay->paymentLinks->create([
'name' => 'Facture #42',
'amount_type' => 'FIXED', // ou 'FREE' pour laisser le client saisir le montant
'amount' => 5000,
'currency' => 'XOF',
'require_phone' => true,
'google_ads_id' => 'AW-123456789',
'custom_fields' => [
['key' => 'reference_client', 'label' => 'Référence client', 'required' => true],
],
// 'show_confirmation_page' => false, 'redirect_url' => 'https://votre-site.test/merci', // sinon page de confirmation par défaut
]);
echo "Lien créé : {$link['url']} (slug: {$link['slug']})\n";
// 2. Côté PUBLIC (page web/app du lien) -- sans clé API, seul le slug circule.
$publicLink = $alphapay->paymentLinks->getPublic($link['slug']);
echo "Montant affiché : {$publicLink['amount']} {$publicLink['currency']}\n";
$checkout = $alphapay->paymentLinks->createPublicCheckout($link['slug'], [
'customer' => [
'email' => 'client@exemple.com',
'first_name' => 'Client',
'last_name' => 'Test',
'phone' => '+22900000000', // requis car require_phone=true ci-dessus
],
'custom_field_values' => ['reference_client' => 'CMD-42'],
]);
echo "CheckoutSession créée : {$checkout['slug']}\n";
echo "Redirigez le client vers : {$checkout['checkout_url']}\n";
// A partir d'ici, même flux que la section 1 (checkoutSessions->get(), webhook, etc.)
// 3. Gestion courante du lien.
$alphapay->paymentLinks->update($link['id'], ['is_active' => false]); // désactive sans supprimer
$links = $alphapay->paymentLinks->list(['is_active' => true]);
echo 'Liens actifs : ' . count($links['results']) . "\n";
} catch (AlphaPayException $e) {
fwrite(STDERR, "Erreur AlphaPay [{$e->getStatus()}] {$e->getErrorCode()}: {$e->getMessage()}\n");
exit(1);
}