Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

Zahlungen

Stripe oder In-App-Kauf? Die Entscheidungshilfe für Web-Apps in den Stores

Deine Lovable- oder Bolt-App hat bereits einen Stripe-Checkout. Im App Store und bei Google Play müssen manche dieser Käufe auf In-App-Kauf umgestellt werden, andere dürfen genau so bleiben, wie sie sind. Die Regel ist einfacher, als sie aussieht, sobald du die richtige Frage stellst: Was kauft der Nutzer eigentlich?

Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.

  • Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
  • Kein Programmieren nötig
  • Einmalzahlung, kostenlose Updates
  • 24/7 Support von echten Menschen
  • Made in Germany seit 2014 · ISO 27001

Die eine Frage: Was wird gekauft?

Apples Richtlinie 3.1.1 und Googles Zahlungsrichtlinie sagen dasselbe mit anderen Worten: Kauft der Nutzer etwas, das in der App genutzt wird (Funktionen, Abos, Credits, Premium-Inhalte), muss der Kauf über das Abrechnungssystem des Stores laufen. Kauft der Nutzer etwas, das außerhalb der App genutzt wird (ein physisches Produkt, einen Haarschnitt, eine Reinigung, ein geliefertes Essen), darf das Abrechnungssystem des Stores nicht verwendet werden, und Stripe ist das richtige Werkzeug.

Apple nennt in 3.1.3 einige ausdrückliche Ausnahmen: Plattformübergreifende Dienste dürfen Nutzern Zugriff auf Inhalte geben, die sie auf deiner Website gekauft haben, solange dieselben Artikel auch in der App per IAP verkauft werden; persönliche Echtzeit-Dienste von Mensch zu Mensch (Nachhilfe, Beratungen) dürfen andere Zahlungsmethoden nutzen; Reader-Apps haben eigene Regeln. Google nimmt physische Waren und Dienstleistungen sowie einige Sonderfälle wie Spenden und Peer-to-Peer-Zahlungen aus. Alles Digitale, das in der App konsumiert wird, fällt unter Play Billing.

Entscheidungstabelle

Du verkaufst …In der iOS-AppIn der Android-AppAuf deiner Website
Ein Abo für App-Funktionen (SaaS-Plan, Premium-Stufe)IAP Pflicht (3.1.1, 3.1.2)Play Billing PflichtStripe, wie bisher
KI-Credits, Tokens, GenerierungenIAP (Verbrauchsartikel)Play Billing (Verbrauchsartikel)Stripe
Kurse, Vorlagen, Downloads, die in der App genutzt werdenIAPPlay BillingStripe
Physische Produkte (Shop)Stripe Pflicht; IAP nicht erlaubtStripe; Play Billing nicht erlaubtStripe
Vor Ort erbrachte Dienstleistungen (Buchungen, Reinigung, Reparaturen)StripeStripeStripe
Live-Dienste eins zu eins (Nachhilfe-Call, Beratung)Stripe erlaubt nach 3.1.3(d); IAP optionalIn der Regel außerhalb von Play Billing; prüfe die Richtlinie für deine NischeStripe
Spenden an eine eingetragene gemeinnützige OrganisationAndere Methoden für genehmigte gemeinnützige Organisationen erlaubtIn vielen Fällen ausgenommen; prüfe die RichtlinieStripe

Die App erkennen und den Checkout umschalten

Dieselbe Web-App bedient beide Kanäle; nur der Checkout-Button ändert sich.

  1. Gib der App einen erkennbaren User-Agent

    Setze in Config.swift useragent_iphone und useragent_ipad, in Config.java USER_AGENT auf einen String mit einem eindeutigen Token, zum Beispiel den Standard-User-Agent gefolgt von WebViewGoldApp/1.0. Lass den Google Login Helper, wie er ist; er behält für den OAuth-Schritt seinen eigenen akzeptierten User-Agent.

  2. In der Web-App verzweigen

    const inApp = navigator.userAgent.includes("WebViewGoldApp"). Zeig in der App den IAP-Button und im Web den Stripe-Button. Versteck den Preis nicht; zeig den Store-Preis.

  3. Den Kauf über RevenueCat auslösen

    In der App navigiert der Button zu revenuecat://purchase?external_id=USER_ID&product=PRODUCT_ID (oder zu revenuecat://launchPaywall?external_id=USER_ID&offering=OFFERING für eine RevenueCat-Paywall). WebViewGold öffnet das native Kauffenster.

  4. Den Abo-Status auf dem Server zusammenführen

    Stripe-Webhooks und RevenueCat-Webhooks schreiben in dieselbe subscriptions-Tabelle. Die Web-App fragt nur „Ist dieser Nutzer aktiv?“ und interessiert sich nie dafür, welcher Store bezahlt hat.

  5. Kein Steering in der App

    Außerhalb der regionalen Ausnahmen darf die App Nutzer nicht zum Kauf auf der Website auffordern, keine Web-Preise zeigen und nicht auf den Stripe-Checkout verlinken. Bestehende Web-Abonnenten loggen sich einfach ein und sind aktiv, was 3.1.3(b) erlaubt, solange IAP ebenfalls angeboten wird.

Mit einer gut optimierten Version Ihrer Web-App können Sie innerhalb von wenigen Minuten eine beeindruckende mobile App erstellen. Zusätzlich dazu ist der Kundenservice sehr nett und hilfsbereit! Ich kann WebViewGold nur empfehlen :-)

Julian Koch · Mitbegründer von DuelDonkey · CodeCanyon

Der Umschalter in JavaScript

Eine minimale Version. Lies die Produkt-IDs in der Produktion aus deinem Backend, damit sie mit beiden Stores synchron bleiben.

javascript
const inApp = /WebViewGoldApp/.test(navigator.userAgent);

function subscribe(userId) {
  if (inApp) {
    // Natives Kauffenster über WebViewGold + RevenueCat (iOS und Android)
    window.location.href = "revenuecat://purchase?external_id=" + encodeURIComponent(userId) + "&product=premium_monthly";
  } else {
    // Web: deine bestehende Stripe-Checkout-Session
    window.location.href = "/api/stripe/checkout?plan=premium_monthly";
  }
}

// Nachdem das native Fenster geschlossen ist: das Backend abfragen, bis der Webhook angekommen ist
async function waitForEntitlement(userId, tries = 10) {
  for (let i = 0; i < tries; i++) {
    const r = await fetch("/api/me/subscription").then(x => x.json());
    if (r.active) return true;
    await new Promise(res => setTimeout(res, 1000));
  }
  return false;
}

Stolperfallen bei unterschiedlichen Preisen

  • Die Preise dürfen sich zwischen Web und Store unterscheiden, aber die App darf nicht mit dem günstigeren Web-Preis werben. Halte Marketing-E-Mails und die Website ehrlich und getrennt von der Oberfläche der App.
  • Apple verkauft zu festen Preisstufen, und beide Stores führen in vielen Ländern Umsatzsteuer bzw. Mehrwertsteuer ab. Vergleiche die Nettoerlöse, nicht die Listenpreise, bevor du einen Store-Preis festlegst.
  • Kostenlose Testphasen und Einführungsangebote gehören zum Store-Produkt (Abo-Angebote), nicht zu Stripe-Gutscheinen. Ein Gutscheincode-Feld in der App, das bezahlte Funktionen freischaltet, umgeht IAP und wird abgelehnt.
  • Verwalten und Kündigen pro Kanal: das Stripe-Kundenportal für Web-Abos, cancelinapppurchase:// für Store-Abos (öffnet die Abo-Übersicht des Systems).
  • Erstattungen für IAP wickeln Apple und Google ab, nicht du. Richte deine Support-Antworten darauf aus.
  • Lass nicht beide Systeme gleichzeitig für denselben Nutzer laufen; kauft ein Web-Abonnent in der App erneut, sollte dein Webhook-Handler das doppelte Abo erkennen und den Support informieren.
  • Die Provision fällt bei Stripe-Verkäufen im Web nicht an, wohl aber bei jedem IAP. Lies den Guide zum 15-%-Programm, bevor du Preise festlegst.

RevenueCat verbindet die beiden Stores

Ein Katalog

Produkte aus App Store Connect und der Play Console werden einem einzigen Entitlement zugeordnet, sodass dein Backend nie nach Plattform verzweigen muss.

In WebViewGold integriert

Zwei Keys in Config.swift und Config.java, dann revenuecat://-Links aus der Web-App. Kein nativer Code. In-App-Käufe erfordern die WebViewGold Extended License.

Webhooks

Events für Erstkauf, Verlängerung, Kündigung, Zahlungsproblem und Ablauf erreichen deine Supabase Edge Function oder Cloud Function. Der Guide zur RevenueCat-Einrichtung führt dich Schritt für Schritt hindurch.

Häufig gestellte Fragen

Kann ich den Checkout aus der App entfernen und Nutzern sagen, dass sie auf der Website abonnieren sollen?

Genau das Sagen ist das Problem: Außerhalb der regionalen Ausnahmen gilt das nach 3.1.1 als Steering. Eine reine Login-App ganz ohne Kaufmöglichkeit wird manchmal akzeptiert, aber Reviewer fragen gern, wie ein neuer Nutzer zum zahlenden Nutzer wird. IAP anzubieten ist die verlässliche Antwort.

Ist Stripe in der App jemals Pflicht?

Ja, für physische Waren und Dienstleistungen, die außerhalb der App konsumiert werden. Apple erlaubt IAP dafür überhaupt nicht.

Zahle ich die Store-Provision auch auf Verkäufe im Web?

Nein. Die Provision fällt nur bei Käufen über die Abrechnung von Apple oder Google an.

Was ist mit Trinkgeldern an Creator oder Coaching, das über meine App verkauft wird?

Digitale Trinkgelder und Coaching-Inhalte in der App sind IAP. Echtzeit-Sitzungen eins zu eins zwischen zwei Menschen dürfen unter iOS nach 3.1.3(d) andere Zahlungsmethoden nutzen. Beschreibe in den Review-Notizen, welcher Fall bei dir vorliegt.

Braucht WebViewGold eine spezielle Lizenz für IAP?

Ja, die Extended License. Alles andere in diesem Guide funktioniert mit der Standardlizenz.

Drei Wege, deine App in die Stores zu bringen

Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.

Selbst machen

$109 pro Plattform, einmalig

Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.