feat: Wabenhain Honig-Shop Anwendung
Vollstaendige Next.js/Prisma-E-Commerce-Anwendung fuer eine Imkerei: Shop, Warenkorb, Stripe-Checkout, Kundenkonto mit 2FA, Admin-Bereich (Produkte, Ernten, Chargen, Bestellungen, Gutscheine, admin-editierbare Website-Inhalte), i18n (DE/EN), Rate-Limiting/CSP/Audit-Log-Haertung, PostgreSQL- und MySQL-Unterstuetzung ueber austauschbare Prisma- Treiber-Adapter, Unit-/Komponenten-/E2E-Tests.
This commit is contained in:
1 parent
5c76fcc266
commit
c7927f2883
240 files changed
+26096
-137
No files matched your search
@@ -0,0 +1,32 @@
|
||||
import Stripe from "stripe";
|
||||
|
||||
let stripeClient: Stripe | null = null;
|
||||
|
||||
/**
|
||||
* Lazily erzeugter Stripe-Client. Wirft erst beim tatsächlichen Checkout einen
|
||||
* verstaendlichen Fehler, wenn STRIPE_SECRET_KEY fehlt, statt den Server-Start
|
||||
* (z.B. in Docker ohne konfigurierte Zahlungsdaten) zu blockieren.
|
||||
*/
|
||||
export function getStripeClient(): Stripe {
|
||||
if (stripeClient) return stripeClient;
|
||||
|
||||
const secretKey = process.env.STRIPE_SECRET_KEY;
|
||||
if (!secretKey) {
|
||||
throw new Error(
|
||||
"STRIPE_SECRET_KEY ist nicht gesetzt. Bitte in der .env-Datei konfigurieren."
|
||||
);
|
||||
}
|
||||
|
||||
// Ein sk_test_-Schluessel in Produktion faellt sonst nicht auf: Bestellungen
|
||||
// wirken vollstaendig erfolgreich (Stripe-Testmodus quittiert brav), es
|
||||
// fliesst aber nie echtes Geld — ein stiller Umsatzausfall statt eines
|
||||
// Fehlers.
|
||||
if (process.env.NODE_ENV === "production" && secretKey.startsWith("sk_test_")) {
|
||||
console.warn(
|
||||
"STRIPE_SECRET_KEY ist in Produktion ein Test-Schluessel (sk_test_...) — Zahlungen werden im Stripe-Testmodus verarbeitet, es fliesst kein echtes Geld."
|
||||
);
|
||||
}
|
||||
|
||||
stripeClient = new Stripe(secretKey);
|
||||
return stripeClient;
|
||||
}
|
||||
Reference in new issue
Block a user