Sichern Sie sich heute 20%. Verwenden Sie beim Bezahlvorgang den Code WELCOME. WILLKOMMEN

Monetize Without Tebex: Self‑Hosted Store with Stripe/W&#…

Lesen Sie dies, bevor Sie beginnen. Wenn Sie ein FiveM/RedM betreiben Server und planen um In-Game-Vergünstigungen zu verkaufen, Sie müssen verwenden Tebex. In den Dokumenten und der PLA von Cfx.re heißt es, dass „die Verwendung anderer Plattformen oder Zahlungsanbieter zur Server-Monetarisierung verboten ist“. Das Self-Hosting von Stripe ist in Ordnung für Off-Server Verkäufe (eigenständige Skripte, MLOs, UI-Pakete, Dienste, Kurse). Verknüpfen Sie diese Verkäufe nicht mit In-Game-Vergünstigungen auf Live-Servern.


Was Sie ohne Tebex monetarisieren können

Erlaubt (außerhalb des Servers):

  • Eigenständige Skripte/MLOs, die Sie zur Selbstinstallation lizenzieren.
  • Texturpakete, UI-Kits, Soundpakete.
  • Beratung, kundenspezifische Entwicklungsarbeit, Installationsdienste.
  • Dokumentation, Kurse, Vorlagen.

Vermeiden (erfordert Tebex oder bricht die Richtlinie):

  • Spielwährung, Pay-to-Win, Lootboxen, NFTs.
  • Prioritätswarteschlange, VIP-Rollen, Whitelist-Boosts, die an Ihren Live-Server gebunden sind.

Architektur auf einen Blick

Ziel: ein selbst gehosteter Store, der digitale Produkte (Skripte/MLOs) verkauft und Lizenzen automatisch liefert.

Stapel:

  • Frontend: Next.js (App Router), React.
  • Zahlungen: Stripe Checkout (einfach) oder Zahlungselement + Zahlungsabsichten (benutzerdefinierter Ablauf).
  • Webhooks: Ereignisse empfangen, Signaturen überprüfen, Bestellungen aktualisieren, Dateien/Schlüssel liefern.
  • Speicherung/Bereitstellung: S3/R2 + signierte URLs; oder Lizenzserver mit geschwindigkeitsbegrenzten Downloads.
  • Steuern/Rechnungen: Stripe Tax + Billing-Rechnungen für B2B.

Datenfluss:

  1. Produkt + Preis erstellen in Streifen.
  2. Starten Sie die Checkout-Sitzung mit Metadaten (Produkt-ID, Käufer-ID).
  3. An Kasse.Sitzung.abgeschlossen oder Zahlungsabsicht erfolgreich, Signatur überprüfen.
  4. Bestellung als bezahlt markieren; Lizenz generieren; signierten Download-Link erstellen; Quittung und Lizenz per E-Mail versenden.

Schritt-für-Schritt-Einrichtung

1) Stripe-Kontohygiene

  • Komplettes Onboarding und Unternehmen verifizieren (KYC).
  • Legen Sie den Kontoauszugsdeskriptor, die Support-E-Mail und die URL der Seite mit den Rückerstattungsrichtlinien fest.
  • Aktivieren Apple Pay / Google Pay; Bankkonto hinzufügen.
  • Einschalten Radar Regeln für grundlegende Betrugsprüfungen.

2) Produkte und Preise

  • Einen Streifen erstellen Produkt pro Skript/MLO.
  • Verwenden Einmalige Preise in Ihrer Käuferwährung (EUR/USD).
  • Fügen Sie Metadatenschlüssel hinzu, die Sie später benötigen: Artikelnummer, Produkt-Slug, Lizenzrichtlinie.

3) Wählen Sie den Zahlungsfluss

  • Streifen Kasse: am schnellsten und SCA-fähig. Verarbeitet Geldbörsen, 3DS, Quittungen. Empfohlen für die meisten Geschäfte.
  • Zahlungselement + Zahlungsabsichten: mehr Kontrolle; verwenden Sie es, wenn Sie eine benutzerdefinierte Benutzeroberfläche oder zusätzliche Methoden benötigen.

4) Sichere Webhooks

  • Erstellen Sie ein POST /api/stripe/webhook Endpunkt.
  • Lesen Sie die Rohkörper; JSON vor der Überprüfung nicht analysieren.
  • Überprüfen Sie mit dem Endpunktgeheimnis; Ablehnen, wenn die Signatur fehlschlägt.
  • Verwenden Idempotenz für ausgehende Aufgaben, die Sie über Webhooks auslösen (z. B. Lizenzerstellung), damit bei Wiederholungsversuchen keine Bestellungen dupliziert werden.

5) Bestellung + Lizenzerfüllung

  • Nach bestätigtem Erfolg:
    1. Erstellen Bestellungen Reihe mit Status = 'bezahlt'.
    2. Generieren Sie einen Lizenzschlüssel (UUID v4) oder ein käufergebundenes Entsperrtoken.
    3. Speichern Sie eine unveränderlicher Build der Postleitzahl (Hash-Nummer).
    4. Geben Sie eine zeitlich begrenzte signierte URL (z. B. 24 Stunden, 3 Downloads).
    5. E-Mail an den Käufer: Rechnungslink, Lizenz, Download-Button.
  • Fügen Sie einen Kundenportal Seite mit Bestellverlauf und erneuten Downloads.

6) Steuern, Rechnungen und Quittungen

  • Einschalten Stripe-Steuer; Elemente markieren als digitale Güter.
  • Erfassen Sie den Standort des Käufers (IP + Rechnungsadresse) und die Steuernummern (z. B. EU-Umsatzsteuer-ID).
  • Für EU-B2C wird die Bestimmungsort-Mehrwertsteuer berechnet. Für gültige EU-B2B-Mehrwertsteuer-IDs wird ein Nullsatz berechnet und die ID wird aufgezeichnet.
  • Speichern Sie Rechnungs-PDFs mit dem Bestelldatensatz.

7) Compliance und Richtlinien

  • Verkaufsbedingungen (Lizenzumfang, kein Weiterverkauf, Anti-Cheat-Klausel, DMCA-Takedown).
  • Rückerstattungen: Es gelten die EU-Fernabsatzvorschriften, bei digitalen Downloads verfällt jedoch das 14-tägige Rückgaberecht Wenn der Käufer stimmt dem ausdrücklich zu und erkennt dies vor dem Download an. Kontrollkästchen anzeigen und Zustimmung protokollieren.
  • Datenschutz: Führen Sie eine DSGVO-Seite; protokollieren Sie Webhook-Nutzdaten, ohne vollständige Kartendaten zu speichern.
  • Sicherheit: Webhook-Geheimnisse rotieren; API-Schlüssel mit geringsten Berechtigungen; Lizenztabelle im Ruhezustand verschlüsseln.

Minimale Implementierung (Next.js + Stripe Checkout)

Serveraktion (Sitzung erstellen):

// app/api/checkout/route.ts importiere Stripe von „stripe“; const stripe = neuer Stripe (process.env.STRIPE_SECRET_KEY!, { apiVersion: „2024-06-20“ }); exportiere asynchrone Funktion POST (req: Request) { const { sku, successUrl, cancelUrl } = warte auf req.json(); const priceId = warte auf mapSkuToPriceId(sku); const session = warte auf stripe.checkout.sessions.create ({ Modus: „Zahlung“, Zeilenelemente: [{ Preis: Preis-ID, Menge: 1 }], Metadaten: { sku }, success_url: successUrl, cancel_url: cancelUrl, }); returniere Response.json ({ URL: session.url }); }

Webhook-Route:

// app/api/stripe/webhook/route.ts
import Stripe from 'stripe';
import { headers } from 'next/headers';

export const config = { api: { bodyParser: false } } as any; // keep raw body

function buffer(body: ReadableStream<Uint8Array>) {
  const reader = body.getReader();
  const chunks: Uint8Array[] = [];
  return reader.read().then(function process({ done, value }): any {
    if (done) return Buffer.concat(chunks);
    chunks.push(Buffer.from(value));
    return reader.read().then(process);
  });
}

export async function POST(req: Request) {
  const sig = headers().get('stripe-signature')!;
  const buf = await buffer(req.body!);
  let event: Stripe.Event;
  try {
    event = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2024-06-20' })
      .webhooks.constructEvent(buf, sig, process.env.STRIPE_WEBHOOK_SECRET!);
  } catch {
    return new Response('Bad signature', { status: 400 });
  }

  if (event.type === 'checkout.session.completed') {
    const session = event.data.object as Stripe.Checkout.Session;
    await fulfill(session); // create order, license, email
  }
  return new Response('OK', { status: 200 });
}

Idempotenz-Tipp: Wenn Ihr Webhook externe Aufgaben auslöst (z. B. E-Mail-Versand, Lizenzerstellung), kapseln Sie diese Aufrufe mit Ihren eigenen Idempotenz-Schlüssel um Duplikate zu vermeiden.


Lizenz- und Dateilieferung

  • Verknüpfen Sie jede Lizenz mit der E-Mail-Adresse des Käufers und der Produkt-SKU.
  • Download-URLs signieren; Begrenzung nach Zeit + Versuchen; IPs zur Missbrauchskontrolle protokollieren.
  • Fügen Sie eine kleine Lizenzvalidator Snippet in Ihrem Ressourcenlader, um den Schlüssel anhand Ihrer API zu überprüfen (Ratenbeschränkung).

Risiko- und Betrugskontrollen

  • Aktivieren Sie 3DS/SCA über Checkout oder Zahlungsabsichten.
  • Blockieren Sie Wegwerf-E-Mails und nicht übereinstimmende Rechnungsländer für Bestellungen mit hohem Risiko.
  • Bewahren Sie Beweisvorlagen für Streitigkeiten auf: Produktbeschreibung, Lizenzprotokolle, Downloadprotokolle, Zustimmung zum Verzicht auf digitale Inhalte.

Verstoßen Sie nicht gegen die Cfx.re-Regeln

  • Verwenden Sie Tebex für alle Vorteile, die Ihren laufenden Server betreffen (Prioritätswarteschlange, VIP-Kits, Autos, Skins).
  • Behalten Sie Stripe nur für digitale Produkte und Dienste außerhalb des Servers.

Interne Links (FiveMX)

Externe Referenzen

  • Cfx.re PLA + Tebex-only Monetarisierung und Dokumente.
  • Stripe-Webhooks und Signaturüberprüfung.
  • Stripe-Idempotenzschlüssel und SCA.
  • EU-Verbraucherrecht: Ausnahmen vom Widerrufsrecht bei digitalen Inhalten.
  • Stripe-Steuer: digitale Güter und OSS.

Checkliste für die Versandbereitschaft

  1. Stripe-Konto verifiziert; Geschäftsdetails vollständig.
  2. Produkte + Preise erstellt; Metadatensatz.
  3. Checkout-Sitzungs-API live; Erfolgs-/Abbruchrouten.
  4. Webhook-Endpunkt live; Signatur verifiziert; Wiederholungsversuche getestet.
  5. Erfüllung: Lizenzgenerator, signierte Download-URL, E-Mail.
  6. Steuern auf; Rechnungs-PDFs gespeichert; Mehrwertsteuerprüfung.
  7. Rechtliche Seiten: Bedingungen, Rückerstattungen, Datenschutz, Lizenz.
  8. Protokolle + Dashboards: Bestellungen, Fehler, Wiederholungsversuche, Streitigkeiten.
  9. Audit: kein Verkauf von Server-Vergünstigungen außerhalb von Tebex.

FAQ (kurz)

  • Kann ich mit Stripe VIP-Rollen verkaufen? Ja, wenn Sie Discord verwenden.
  • Kann ich meine MLOs mit Stripe verkaufen? Ja, sofern die Bereitstellung außerhalb des Servers erfolgt und nicht an Live-Vergünstigungen gebunden ist.
  • Erhalten Käufer eine 14-tägige Rückerstattung? Für die EU gilt: nicht, nachdem Sie der sofortigen digitalen Bereitstellung zugestimmt und den Download gestartet haben. Zustimmung protokollieren.
  • Welcher Stripe-Flow ist der beste? Checkout für Geschwindigkeit; Zahlungsabsichten, wenn Sie umfangreiche Anpassungen benötigen.
Lukas
Lukas

Ich bin Luke, ein Gamer und schreibe gerne über FiveM, GTA und Rollenspiele. Ich betreibe eine Rollenspiel-Community und habe etwa 10 Jahre Erfahrung in der Verwaltung von Servern.

Artikel570