Plattformübergreifende Subscriptions - Wie managen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Plattformübergreifende Subscriptions - Wie managen?

    Hallo,

    der Versuch sich in die Geheimnisse der Abo-Verwaltung mit iOS und Android einzuarbeiten gestaltet sich erstaunlich schwierig. IAPs und Subscriptions auf der jeweiligen Plattform zu managen ist dabei kein Problem, sobald es aber darum geht das Ganze auf mehrere Plattformen auszudehnen wird es entweder deutlich komplizierter oder das Brett vor meinem Kopf deutlich größer (oder beides)...

    Worum geht's?

    • Bei WebApp XY können Nutzer mit E-Mailadresse und Passwort ein Nutzerkonto erstellen.
    • Die WebApp lässt sich dann einen Monat kostenlos testen und anschließend über ein Abo verlängern.
    • Abwicklung der Käufe und des Abos geschieht ganz klassisch über die Webseite (Eingabe der Nutzerdaten, Auswahl des Paketes, Zahlung über PayPal, Kreditkarte, etc.)
    • Zudem gibt es auch auch native, mobile Versionen der App für iOS und Android. Diese sollen sich mit der WebApp verbinden und Daten austauschen können.
    Soweit alles kein Problem. Natürlich wäre es nun ohne weiteres möglich alles genau so zu belassen und die Nutzer der mobilen Apps loggen sich von dort aus einfach in das bestehende WebApp Konto ein während die Käufe des Abos komplett in der WebApp geschehen. Fertig, alle Probleme gelöst...

    Leider stehen nun aber bekanntlich sowohl Apple als auch Google kurz vor dem Bankrott und sind daher leider auf die Hilfe von App-Entwicklern angewiesen. Das Abo in den mobilen Apps zu bewerben/anzubieten/nutzen und gleichzeitig die Käufe nur über die WebApp abzuwickeln ist streng verboten. Stattdessen dürfen die mobilen Apps keinen Hinweis auf das Abo in der WebApp enthalten und müssen dieses selbst als IAPs anbieten damit Apple und Google ihre 30% vom Kaufpreis abbekommen.

    Das ist natürlich alles total sinnvoll, fair und angemessen und für den Nutzer die tollste Option.


    Umsetzung über In-App Käufe


    Die Abos als IAPs anzubieten ist für die jeweilige Plattform kein Problem. Die APIs und Vorgehensweisen unterscheiden sich natürlich bei Apple und Google, das Prinzip ist aber quasi dasselbe. Auf die Unterscheidung von Apple und Google kann daher im Folgenden verzichtet werden:
    • Die App Prüft die App-Quittung und stellt darüber fest, ob eine Subscription läuft oder nicht und gibt dann entsprechend die Funktionen frei oder nicht
    • Ist das Ergebnis negativ, heißt das nicht zwingend, dass der Nutzer kein Abo hat, sondern nur dass er dieses nicht über den App Store gekauft hat. Wird gerade die iOS App genutzt kann es ja auch sein, dass das Abo in der WebApp oder unter Android gekauft wurde.
    • Die App sollte also bei der WebApp nachfragen ob ein Abo aktiv ist oder nicht. Hierfür muss sich der Nutzer also in der App mit Nutzernamen und Passwort in die WebApp einloggen können.
    • Ist kein Abo aktiv, kann der Nutzer eines über einen entsprechenden IAP kaufen
    • Nach dem Kauf erhält die App vom Store eine Quittung die diese dann an die WebApp senden kann. Die WebApp wertet die Quittung aus und speichert diese. Anhand der Informationen wird das Abo auch in der WebApp für den Nutzer aktiviert
    • Beendet der Nutzer sein Abo in der mobilen App wird die WebApp über eine Notification vom App Store Server informiert und kann das Abo auch in der WebApp beenden.


    Soweit alles klar, aber...


    Konkrete Probleme:
    • Unter iOS Abos verwalten die unter Android geschlossen wurden...
    • Käufe sind in den Stores immer an das jeweilige App Store Konto gebunden (Apple ID / Google Play Konto). Angenommen der Nutzer verbindet sich mit WebApp-Konto-A und kauft dann über sein Store-Konto ein Abo. Dieses wird von der WebApp für Konto A hinterlegt und aktiviert. Wie verhindert man, dass sich der Nutzer auf dem mobilen Gerät aus Konto A auslogged, mit Konto B verbindet und dann seine Käufe wiederherstellt? Wird das Abo dann nicht auch für Konto B aktiviert?
    • Der Ablauf ist bislang Nutzerkonto erstellen -> Probemonat -> Abo abschließen. Damit ein Abo in der mobilen App dem WebApp Konto gutgeschrieben wird, muss sich der Nutzer in der mobilen App zunächst mit der WebApp verbinden. Er muss also erst einmal ein Nutzerkonto für die WebApp erstellen. Muss das auch schon in der mobilen App geschehen, weil eine Weiterleitung an die WebApp verbotene Werbung wäre?
    • Darf dann ein kostenloser Probemonat mit der Erstellung des Kontos gestartet werden muss das über die "Free trial" Funktion der Store Subscriptions gemacht werden?

    • Muss die mobile App die Quittung nach einem Kauf aktiv an die WebApp senden oder kann sich die WebApp darauf verlassen diese über Notifications direkt vom Store-Server zu erhalten? Wird ein Kauf vom Store-Server komplett abgeschlossen, wenn er keine Verbindung zum WebApp Server bekommt?
    • Angenommen das Abo wurde unter Android gestartet. Logged sich der Nutzer in der iOS App in das WebApp Konto ein erhält er von dort zwar die Information, dass das Abo aktiv ist und das die App die Funktionen frei gibt, er halt aber keine Möglichkeit das Abo zu verwalten. Es kann also nicht verlängert oder storniert werden. Dies ginge auch in der WebApp nicht, sonder nur wieder unter Android. Der Nutzer ist also mit der Abo-Verwaltung immer an die Plattform gebunden, unter der er dieses gestartet hat. Ist das richtig oder verstehe ich etwas falsch?