In-App Verkäufe als Guthaben für Mehrwertdienste

Willkommen in der Mobile-Pay-World. Was ich damit sagen will?! Das Smartphone wird immer mehr zum Zahlungsmittel. Derzeit fliegen neue Produkte und Ideen aus allen Nischen der Softwaredienstleister. Auch Apple bietet jetzt mit Apple Pay die Möglichkeit, bargeldlos an Terminals zu bezahlen. Ich möchte hier einmal die “alten” Dienste von Google und Apple beleuchten und veranschaulichen, wie auch damit digitales Geld in Gutscheine oder Guthaben zur Nutzung von Mehrwertdiensten gewandelt und verifiziert werden kann.

Es geht um die Systeme In App Purchase (Apple) und In App Billing (Google). Diese Mechanismen wurden geschaffen, um “In App Käufe” zu ermöglichen. Gamer werden es am besten kennen. Für wenige Cents kann man sich Add-Ons wie Schwerter, Helme oder Gold und Ähnliches in den App Spielewelten aneignen. Apple oder Google bucht dabei den gewünschten Betrag von einem vorher verifizierten Zahlungsmittel des Mobilenutzers ab und transferiert diesen Betrag an den Betreiber (Entwickler) der App. Dabei erhalten Apple und Google üppige Provisionen. Diese Art ist derzeit üblich, um Apps wie Spiele scheinbar kostenlos anbieten zu können und die Kosten für Entwicklung und Betrieb der Software hinten herum durch kostenpflichtige Add-Ons wieder herein zu holen. Für bspw. Spiele funktioniert dieses Prinzip auch sehr gut. Nehmen wir an, wir entwickeln ein Autorennspiel. Dieses ist kostenlos in den Stores erhältlich. Der Spieler kann sich mit virtuellem Geld ein Auto kaufen, dieses neu lackieren und etwas aufmotzen. Anschließend fährt er damit Rennen gegen reale Gegner aus der Community. Er gewinnt und verliert. Verliert er zu häufig, braucht er dabei sein virtuelles Geld auf. Nun benötigt der Spieler aber einen leistungsstärkeren Motor. Dieser bedarf einer Summe X seines virtuellen Geldes, welches er aber bereits in den letzten Rennen verloren hat. Nun entschließt sich der Spieler den Motor für echtes Geld zu beschaffen. Die Kosten sind überschaubar, wenige Cents und er kann direkt weiter spielen. Jetzt haben wir als Herausgeber der APP zum ersten mal Profit gemacht. Verstecken wir viele dieser Möglichkeiten, neue Extras für das Spiel im Spiel zu kaufen, so erhöht sich dieser Profit und allmählich rechnet sich die Entwicklungszeit sowie der Betrieb unserer Server um das Spiel anbieten zu können.

Wie funktioniert der Kauf “In APP”?

Über einen Button wird das SDK von Apple (StoreKitSuite) oder Google (Google Wallet) geladen. Diese zeigen ziemlich ähnliche Dialoge an, welche dem Benutzer zunächst mitteilen, um welchen Kauf es sich handelt und was dieser kosten soll.

Beispiel

Im nächsten Schritt kann der Benutzer noch das Zahlungsmittel auswählen. Meist ist dies die bei Apple oder Google verifizierte Kreditkarte. Neuerdings kann man dort aber auch direkt über den Mobilfunkprovider oder weitere Zahlungsanbieter wie Paypal und ähnlichen bezahlen. Mit Bestätigen des Zahlungsmittels ist der Kauf bereits getätigt. Die App bekommt ein Verfiy-Signal, welches an unser Spiel zurückgegeben wird. Darauf können wir nun reagieren und das gewünschte Feature freischalten.

Der grobe Ablauf

Haben wir nun das entsprechende Produkt, welches wir verkaufen wollen, identifiziert, so können wir mit diesen Daten die Kaufmaske anzeigen. Bestätigt der Nutzer jetzt diesen Kauf, senden wir die Anfrage an den Verifizierungsserver des Anbieters. Anhand des Verifizierungs-Keys wird auf dem Server das Produkt und der Nutzer überprüft. Sind die Daten okay, antwortet der Server mit einem “Okay” in dem jeweiligen SDK Dialekt. Dies geschieht Synchron. Ist der Server also offline oder die Datenverbindung des Nutzers schwach, so kann es zu Problemen kommen. Dieses Offline-Problem wollen wir hier aber nicht näher betrachten. Zusätzlich senden beide Anbieter eine Signatur verschlüsselt durch den Key mit zurück an die App. Diese Signatur oder Nachricht kann dort dekodiert werden. Enthalten sind bspw. die Transaktions-ID und weitere Kaufrelevante-Informationen.

Hier endet das einfache Beispiel eines In App-Kaufes. Die App schaltet das Feature frei und der Nutzer zahlt mit seiner nächsten Kreditkartenabrechnung den Erhalt eines neuen Motors. Für diese Art von Kauf ist das Verfahren bestens geeignet. Jetzt kommen wir aber zum eigentlichen Thema, den Kauf von Guthaben für einen kostenpflichtigen Dienst.

Aufladen

Verifizierung

Der Server entschlüsselt die Nachricht mit dem Key und gleicht die enthaltenen Werte mit denen ab, welche die App zusätzlich mitgeliefert hat. Außerdem steht noch der Status der Transaktion in der Nachricht, so dass dort noch einmal klar sichergestellt werden kann, dass die Zahlung erfolgreich durchgeführt und nicht abgebrochen wurde. Erst jetzt ist klar, dass die Zahlung tatsächlich stattgefunden hat. Das Serverprogramm lädt dem Konto den verbuchten Betrag auf und bestätigt die Anfrage der App mit einem “Okay”. Die serverseitige Verifizierung ist damit abgeschlossen. So ist es ebenfalls möglich, In App-Käufe auch für Geldtransfer zu benutzen. Für Apple IAP https://gist.github.com/jamesstout/5073237 und Google IAB https://github.com/mitchobrian/google-play-in-app-billing-verification gibt es ein paar Beispiele für die serverseitige Verifizierung der Nachricht. Bei Google kann dies unmittelbar auf dem eigenen System durchgeführt werden. Für die Apple Nachrichten gibt es wiederum eine API zu finden unter https://sandbox.itunes.apple.com/verifyReceipt für die Prüfung des Kaufvorganges.

Fazit

Dieser Artikel ist outdated — geschrieben im Jahr 2015

Meine Freunde rufen mich Mitch - ich bin passionierter Softwareentwickler und Vater. https://palmomedia.de

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store