Wegen PAYONE-Ausfall vorgezogen live geschaltet: alle Einmalzahlungen (Shop + Salescenter) laufen über Stripe Hosted Checkout, Abos sind bis Phase S4 eingefroren. - Provider-Abstraktion: PaymentProvider-Enum, PaymentGatewayInterface, PaymentProviderManager (Settings-Schalter, provider-treu je Bestand), PayoneGateway als unveränderter Adapter - StripePaymentService: Checkout Session (eine Gesamtposition, Metadata, success/cancel-Redirects), StripeClientWrapper (lazy, Dark Launch), StripeCustomerService, StripeTransactionRecorder (client_secret-Redaction) - Webhook /stripe/webhook: Signaturprüfung, Idempotenz über stripe_webhook_events (Crash-Retry-Reprocessing), txaction-Prioritäten, Betrags-Guard, lockForUpdate-Paid-Pfad, genau eine Bestätigungsmail - Zahlungsmethoden-Anzeige aus charge.succeeded (carddata inkl. Wallet, auftragsunabhängiges Backfill aus dem Event-Store) - Checkout: Wartungsmodus mit Admin-Bypass, Abo-Freeze-Hinweis, Stripe-Option (Online-Zahlung) statt Zahlartenwahl, Vorkasse ausblendbar - Abo-Freeze-Guards: Cron user:make_abo_order, Retry, Kartenupdate - Admin-Settings-Karte Zahlungen (Provider, Wartung, Freeze, Vorkasse) - Hotfix: 500 bei Vorkasse ohne Clearing-Daten in admin/sales/_detail und checkout-final (PAYONE-Ausfall) - Doku dev/2026-07-08-stripe/ (Plan S0–S8, Konzept, IST-Analyse) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
46 lines
1.9 KiB
XML
Executable file
46 lines
1.9 KiB
XML
Executable file
<?xml version="1.0" encoding="UTF-8"?>
|
|
<phpunit backupGlobals="false"
|
|
backupStaticAttributes="false"
|
|
bootstrap="vendor/autoload.php"
|
|
colors="true"
|
|
convertErrorsToExceptions="true"
|
|
convertNoticesToExceptions="true"
|
|
convertWarningsToExceptions="true"
|
|
processIsolation="false"
|
|
stopOnFailure="false">
|
|
<testsuites>
|
|
<testsuite name="Feature">
|
|
<directory suffix="Test.php">./tests/Feature</directory>
|
|
</testsuite>
|
|
|
|
<testsuite name="Unit">
|
|
<directory suffix="Test.php">./tests/Unit</directory>
|
|
</testsuite>
|
|
</testsuites>
|
|
<filter>
|
|
<whitelist processUncoveredFilesFromWhitelist="true">
|
|
<directory suffix=".php">./app</directory>
|
|
</whitelist>
|
|
</filter>
|
|
<php>
|
|
<env name="APP_ENV" value="testing"/>
|
|
<env name="APP_MAINTENANCE_DRIVER" value="file"/>
|
|
<env name="BCRYPT_ROUNDS" value="4"/>
|
|
<env name="CACHE_STORE" value="array"/>
|
|
<env name="DB_CONNECTION" value="sqlite" force="true"/>
|
|
<env name="DB_DATABASE" value=":memory:" force="true"/>
|
|
<server name="DB_CONNECTION" value="sqlite" force="true"/>
|
|
<server name="DB_DATABASE" value=":memory:" force="true"/>
|
|
<env name="MAIL_MAILER" value="array"/>
|
|
<env name="PULSE_ENABLED" value="false"/>
|
|
<env name="QUEUE_CONNECTION" value="sync"/>
|
|
<env name="SESSION_DRIVER" value="array"/>
|
|
<env name="TELESCOPE_ENABLED" value="false"/>
|
|
<env name="BASIC_AUTH_ENABLED" value="false"/>
|
|
<env name="PAYONE_KEY_HASH" value="698fb2555f8b2efc74f60b2121421f45"/>
|
|
<env name="STRIPE_SECRET" value="sk_test_fake_suite_key"/>
|
|
<env name="STRIPE_KEY" value="pk_test_fake_suite_key"/>
|
|
<env name="STRIPE_WEBHOOK_SECRET" value="whsec_fake_suite_secret"/>
|
|
<env name="STRIPE_MODE" value="test"/>
|
|
</php>
|
|
</phpunit>
|