Files
geo/api/test_stripe.php
Pierre 242a90720e feat: Début des évolutions interfaces mobiles v3.2.4
- Préparation de la nouvelle branche pour les évolutions
- Mise à jour de la version vers 3.2.4
- Intégration des modifications en cours

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 16:49:29 +02:00

102 lines
4.0 KiB
PHP

<?php
/**
* Script de test pour vérifier l'intégration Stripe
* Usage: php test_stripe.php
*/
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/src/Config/AppConfig.php';
require_once __DIR__ . '/src/Services/StripeService.php';
require_once __DIR__ . '/src/Core/Database.php';
// Forcer l'environnement dev
$_SERVER['SERVER_NAME'] = 'app.geo.dev';
echo "================================\n";
echo "Test de l'intégration Stripe\n";
echo "================================\n\n";
try {
// Test 1: Configuration
echo "1. Test de la configuration...\n";
$config = AppConfig::getInstance();
$stripeConfig = $config->getStripeConfig();
if (empty($stripeConfig['public_key_test']) || strpos($stripeConfig['public_key_test'], 'pk_test_') !== 0) {
throw new Exception("❌ Clé publique TEST non configurée");
}
echo "✅ Clé publique TEST configurée\n";
if (empty($stripeConfig['secret_key_test']) || strpos($stripeConfig['secret_key_test'], 'sk_test_') !== 0) {
throw new Exception("❌ Clé secrète TEST non configurée");
}
echo "✅ Clé secrète TEST configurée\n";
echo "✅ Mode: " . ($stripeConfig['mode'] ?? 'test') . "\n\n";
// Initialiser la base de données avant le service Stripe
Database::init($config->getDatabaseConfig());
// Test 2: Service Stripe
echo "2. Test du service Stripe...\n";
$stripeService = \App\Services\StripeService::getInstance();
echo "✅ Service Stripe initialisé\n";
echo "✅ Mode TEST: " . ($stripeService->isTestMode() ? 'Oui' : 'Non') . "\n";
// Masquer la clé publique pour l'affichage
$publicKey = $stripeService->getPublicKey();
$maskedKey = substr($publicKey, 0, 10) . '...' . substr($publicKey, -4);
echo "✅ Clé publique: $maskedKey\n\n";
// Test 3: Base de données
echo "3. Test de la base de données...\n";
Database::init($config->getDatabaseConfig());
$db = Database::getInstance();
// Vérifier les tables Stripe
$stmt = $db->prepare("SHOW TABLES LIKE 'stripe_%'");
$stmt->execute();
$tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
echo "Tables Stripe trouvées: " . count($tables) . "\n";
foreach ($tables as $table) {
echo "$table\n";
}
if (count($tables) < 7) {
echo "⚠️ Attention: Toutes les tables ne sont pas créées (attendu: 7+)\n";
}
echo "\n";
// Test 4: Vérifier les appareils Android certifiés
echo "4. Test des appareils Android certifiés...\n";
$stmt = $db->prepare("SELECT COUNT(*) as count FROM stripe_android_certified_devices WHERE tap_to_pay_certified = 1");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "✅ Appareils Android certifiés: " . $result['count'] . "\n\n";
// Test 5: Test de connexion à l'API Stripe
echo "5. Test de connexion à l'API Stripe...\n";
try {
\Stripe\Stripe::setApiKey($stripeConfig['secret_key_test']);
$balance = \Stripe\Balance::retrieve();
echo "✅ Connexion à Stripe réussie!\n";
echo " Solde disponible: " . number_format($balance->available[0]->amount / 100, 2) . " " . strtoupper($balance->available[0]->currency) . "\n";
echo " Solde en attente: " . number_format($balance->pending[0]->amount / 100, 2) . " " . strtoupper($balance->pending[0]->currency) . "\n";
} catch (Exception $e) {
echo "❌ Erreur de connexion Stripe: " . $e->getMessage() . "\n";
}
echo "\n================================\n";
echo "✨ Tests terminés avec succès!\n";
echo "================================\n\n";
echo "Prochaines étapes:\n";
echo "1. Créer un webhook dans le Dashboard Stripe\n";
echo "2. Activer Stripe Connect et Terminal\n";
echo "3. Tester les endpoints via l'app ou Postman\n";
} catch (Exception $e) {
echo "\n❌ ERREUR: " . $e->getMessage() . "\n";
echo "Trace: " . $e->getTraceAsString() . "\n";
exit(1);
}