- 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>
102 lines
4.0 KiB
PHP
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);
|
|
} |