Share via


In-App Purchase Basics and Configuration in Xamarin.iOS

Für die Implementierung von In-App-Käufen muss die Anwendung die StoreKit-API auf dem Gerät verwenden. StoreKit verwaltet die gesamte Kommunikation mit den iTunes-Servern von Apple, um Produktinformationen zu erhalten und Transaktionen auszuführen. Das Bereitstellungsprofil muss für den In-App-Einkauf konfiguriert sein und Produktinformationen müssen in iTunes Verbinden eingegeben werden.

StoreKit manages all communication with Apple’s as shown in this chart

Die Verwendung des App Store zum Bereitstellen des In-App-Einkaufs erfordert die folgende Einrichtung und Konfiguration:

  • iTunes Verbinden – Konfigurieren der Produkte zum Verkaufen und Einrichten von Sandkastenbenutzerkonten zum Testen des Einkaufs. Sie müssen Auch Ihre Bank- und Steuerinformationen an Apple übermittelt haben, damit sie in Ihrem Auftrag gesammelte Gelder überweisen können.
  • iOS-Bereitstellungsportal – Erstellen eines Bündelbezeichners und Aktivieren des App Store-Zugriffs für Ihre App.
  • Store Kit – Hinzufügen von Code zu Ihrer App zum Anzeigen von Produkten, Zum Kauf von Produkten und zum Wiederherstellen von Transaktionen.
  • Benutzerdefinierter Code – Um Einkäufe von Kunden nachzuverfolgen und die produkte oder Dienste bereitzustellen, die sie gekauft haben. Möglicherweise müssen Sie auch einen serverseitigen Prozess implementieren, um Bestätigungen zu überprüfen, wenn Ihre Produkte aus Inhalten bestehen, die von einem Server heruntergeladen wurden (z. B. Bücher- und Magazinprobleme).

Es gibt zwei Store Kit-Serverumgebungen:

  • Produktion – Transaktionen mit echtem Geld. Nur über Anwendungen zugänglich, die von Apple eingereicht und genehmigt wurden. In-App-Kaufprodukte müssen auch überprüft und genehmigt werden, bevor sie in der Produktionsumgebung verfügbar sind.
  • Sandkasten – Wo Ihre Tests durchgeführt werden. Produkte sind hier unmittelbar nach der Erstellung verfügbar (der Genehmigungsprozess gilt nur für die Produktionsumgebung). Transaktionen im Sandkasten erfordern Testbenutzer (keine echten Apple-IDs), um Transaktionen auszuführen.

In-App-Einkaufsregeln

Sie können keine anderen Zahlungsformen für digitale Produkte oder Dienste innerhalb Ihrer App akzeptieren oder sie Erwähnung oder Ihre Benutzer von einer App aus darauf verweisen. Dies bedeutet, dass Sie kreditwürdige Karte s oder PayPal nicht akzeptieren können, wenn der In-App-Einkauf der am besten geeignete Zahlungsmechanismus ist. Es gibt einen speziellen Fall für den Kauf digitaler Produkte außerhalb der App, aber für die Verwendung in der App, z. B. beim Kauf von Büchern auf einer Website, die einem bestimmten "Login" zugeordnet sind, und die Verwendung dieser "Anmeldung" in der App ermöglicht dem Benutzer den Zugriff auf die gekauften Bücher. Anwendungen, die auf diese Weise funktionieren, dürfen nicht Erwähnung oder mit dem externen Einkaufsfeature verknüpfen – Entwickler müssen diese Funktion ihren Benutzern auf andere Weise mitteilen (z. B. per E-Mail-Marketing oder einem anderen direkten Kanal).

Da Sie in der App jedoch keine In-App-Einkäufe für physische Waren verwenden können, dürfen Sie in diesem Fall einen alternativen Zahlungsmechanismus (z. B. Kredit Karte, PayPal) innerhalb der App verwenden.

Apple muss jedes Produkt genehmigen, bevor es im On-Sale ist – der Name, die Beschreibung und ein Screenshot des "Produkts" sind für die Überprüfung erforderlich. Produktüberprüfungszeiten sind identisch mit Anwendungsüberprüfungen.

Sie können keinen Preis für Ihr Produkt auswählen – Sie können nur ein "Preisniveau" auswählen, das einen bestimmten Wert in jedem Land/jeder Währung aufweist, die Apple unterstützt. Sie können in verschiedenen Märkten nicht über ein anderes Preisniveau verfügen.

Konfiguration

Bevor Sie In-App-Einkaufscode schreiben, müssen Sie in iTunes Verbinden ( itunesconnect.apple.com) und dem iOS-Bereitstellungsportal (developer.apple.com/iOS) einige Einrichtungsvorgänge ausführen.

Diese drei Schritte sollten ausgeführt werden, bevor Sie Code schreiben:

  • Apple Developer Account – Übermitteln Sie Ihre Bank- und Steuerinformationen an Apple.
  • iOS-Bereitstellungsportal – Stellen Sie sicher, dass Ihre App über eine gültige App-ID verfügt (keine Wild Karte mit einem Sternchen * darin) und "In App-Einkauf" aktiviert ist.
  • iTunes Verbinden Anwendungsverwaltung – Fügen Sie Ihrer Anwendung Produkte hinzu.

Apple-Entwicklerkonto

Das Erstellen und Verteilen kostenloser Apps erfordert in iTunes Verbinden sehr wenig Konfiguration, um kostenpflichtige Apps oder In-App-Käufe zu verkaufen, erfordert jedoch, dass Sie Apple Bank- und Steuerinformationen zur Verfügung stellen. Klicken Sie im hier gezeigten Menü Standard auf Vereinbarungen, Steuern und Banken:

Click on Agreements, Tax and Banking from the main menu

Ihr Entwicklerkonto sollte einen Vertrag für kostenpflichtige iOS-Anwendungen in Kraft haben, wie in diesem Screenshot gezeigt:

Your Developer Account should have an iOS Paid Applications contract in effect

Sie können keine StoreKit-Funktionen testen, bis Sie über einen Vertrag für kostenpflichtige iOS-Anwendungen verfügen – StoreKit-Aufrufe in Ihrem Code schlagen fehl, bis Apple Ihre Verträge, Steuern und Bankinformationen verarbeitet hat.

iOS-Bereitstellungsportal

Neue Anwendungen werden im Abschnitt "App-IDs " des iOS-Bereitstellungsportals eingerichtet. Um eine neue App-ID zu erstellen, wechseln Sie zum Member Center des iOS-Bereitstellungsportals, navigieren Sie zum Abschnitt "Zertifikate", "Bezeichner" und "Profile" des Portals, und klicken Sie unter iOS-Apps auf "Bezeichner". Klicken Sie dann oben rechts auf das "+", um eine neue App-ID zu generieren.

Das Formular zum Erstellen neuer App-IDs

sieht wie folgt aus:

The form for creating new App IDs

Geben Sie etwas für die Beschreibung ein, damit Sie diese App-ID ganz einfach in einer Liste identifizieren können. Wählen Sie für das App-ID-Präfix die Team-ID aus.

Paketbezeichner/App-ID-Suffixformat

Sie können eine beliebige Zeichenfolge für Ihren Bundle-Bezeichner verwenden (sofern es in Ihrem Konto eindeutig ist), apple empfiehlt jedoch, dem Reverse-DNS-Format zu folgen, anstatt beliebige Zeichenfolgen zu verwenden. Die Beispielanwendung, die zu diesem Artikel gehört, verwendet com.xamarin.storekit.testing für den Bundle-Bezeichner, ist jedoch gleichermaßen gültig, um einen Bezeichner wie my_store_example zu verwenden (auch wenn Apple es nicht empfiehlt).

Wichtig

Apple ermöglicht außerdem das Hinzufügen eines Sternchens in Wild-Karte am Ende eines Bündelbezeichners, sodass eine einzelne App-ID für mehrere Anwendungen verwendet werden kann, jedoch können wild Karte App-IDs nicht für In-AppPurchase verwendet werden. Ein Beispiel für einen Wild-Karte Bundle-Bezeichner kann "com.xamarin".*

Aktivieren von App-Diensten

Beachten Sie, dass in der Liste "Dienste" der In-App-Kauf automatisch aktiviert wird:

In-App Purchase will be automatically enabled in the Services list

Bereitstellungsprofile

Erstellen Sie Entwicklungs- und Produktionsbereitstellungsprofile wie gewohnt, und wählen Sie die App-ID aus, die Sie für den In-App-Einkauf eingerichtet haben. Weitere Informationen finden Sie in den App Store-Leitfäden zur Bereitstellung und Veröffentlichung von iOS-Geräten.

iTunes Connect

Klicken Sie auf Meine Apps in iTunes Verbinden, um einen iOS-Anwendungseintrag zu erstellen oder zu bearbeiten. Die Anwendungsübersichtsseite wird hier angezeigt:

The application overview page

Klicken Sie auf In-App-Einkäufe , um Ihre Produkte zum Verkauf zu erstellen oder zu bearbeiten. Dieser Screenshot zeigt die Beispiel-App mit mehreren produkten, die bereits hinzugefügt wurden:

The sample app with several products already added

Der Prozess zum Hinzufügen neuer Produkte umfasst zwei Schritte:

  1. Wählen Sie den Produkttyp aus: Choose the product type
  2. Geben Sie die Attribute des Produkts ein, einschließlich der Produkt-ID, der Preisstufe und der lokalisierten Beschreibungen: Entering the products attributes

Die felder, die für jedes In-App-Kaufprodukt erforderlich sind, werden nachfolgend beschrieben:

Verweisname

Der Verweisname wird ihren Benutzern nicht angezeigt. es ist für die interne Verwendung vorgesehen und wird nur in iTunes Verbinden angezeigt.

Produkt-ID-Format

Ein Produktbezeichner kann nur alphanumerische Zeichen (A-Z,a-z,0-9), Unterstriche (_) und Punktzeichen (.) enthalten. Obwohl Sie eine beliebige Zeichenfolge für Ihre Bezeichner verwenden können, empfiehlt Apple das Reverse-DNS-Format. Die Beispielanwendung verwendet z. B. diesen Bundlebezeichner:

com.xamarin.storekit.testing

Daher würde die Konvention zur Identifizierung von In-App-Kaufprodukten wie folgt lauten:

com.xamarin.storekit.testing.consume5credits
com.xamarin.storekit.testing.consume10credits
com.xamarin.storekit.testing.sepia
com.xamarin.storekit.testing.greyscale

Diese Benennungskonvention wird nicht erzwungen, einfach eine Empfehlung, die Sie bei der Verwaltung Ihrer Produkte unterstützt. Darüber hinaus sind die Produkt-IDs trotz der gleichen Reverse-DNS-Konvention nicht mit dem Bundle-Bezeichner verknüpft und müssen nicht mit derselben Zeichenfolge beginnen. Es wäre weiterhin gültig, Bezeichner wie photo_product_greyscale zu verwenden (auch wenn Apple es nicht empfiehlt).

Die Produkt-ID wird ihren Benutzern nicht angezeigt, wird jedoch verwendet, um auf das Produkt im Anwendungscode zu verweisen.

Produkttyp

Es gibt fünf Arten von In-App-Kauf-Produkten, die Sie anbieten können:

  1. Konsumierbar – Dinge, die "aufgewendet" werden, z. B. Spielwährung, die der Spieler ausgeben kann. Wenn der Benutzer eine Sicherung/Wiederherstellung durchführt oder auf andere Weise sein Gerät aktualisiert hat, wird eine Verbrauchstransaktion nicht auch wiederhergestellt (was dem Spieler effektiv den gleichen Vorteil mehr bietet). Der Anwendungscode muss sicherstellen, dass der "Verbrauchsartikel" bereitgestellt wird, sobald die Transaktion abgeschlossen ist.
  2. Nicht konsumierbar – Produkte, die der Benutzer einmal gekauft hat, z. B. ein digitales Magazin-Problem oder ein Spiellevel.
  3. Auto-Erneuerbare Abonnements – genau wie ein reales Magazinabonnement, am Ende des Abonnementzeitraums berechnet Apple den Kunden automatisch erneut und verlängert die Abonnementlaufzeit für immer oder bis der Kunde sie explizit storniert. Dies ist die bevorzugte Zahlungsmethode für Newsstand-Apps (in der Tat müssen Apps diese Zahlungsmethode unterstützen, die für die Newsstand-Verteilung genehmigt werden soll).
  4. Kostenloses Abonnement – Kann nur in Newsstand-fähigen Apps angeboten werden und ermöglicht es dem Kunden, auf alle ihre Geräte auf Abonnementinhalte zuzugreifen. Kostenlose Abonnements laufen nie ab.
  5. Abonnement ohne Verlängerung – Sollte verwendet werden, um zeitlich begrenzten Zugriff auf statische Inhalte zu verkaufen, z. B. einen Monat Zugriff auf ein Fotoarchiv.

Dieses Dokument behandelt derzeit nur die ersten beiden Produkttypen (Verbrauchsartikel und Nicht-Verbrauchsartikel).

Preisniveaus

Im App Store können Sie keinen beliebigen Preis für Ihre Produkte auswählen – Apple bietet Feste Preisniveaus, aus denen Sie wählen können. Die Preise werden in jeder Währung festgelegt, und Apple behält sich das Recht vor, die relativen Preise anzupassen (z. B. nach einer anhaltenden Änderung des relativen Wechselkurses zwischen einer bestimmten Währung und dem US-Dollar).

Apple bietet eine Preismatrix, mit der Sie das richtige Tier für die gewünschte Währung/den gewünschten Preis auswählen können. Ein Auszug der Preismatrix (August 2012) wird hier gezeigt:

An excerpt of the price matrix August 2012

Zum Zeitpunkt des Schreibens (Juni 2013) gibt es 87 Ebenen von 0,99 USD bis 999,99 USD. Die Preismatrix zeigt den Preis an, den Ihre Kunden bezahlen und auch den Betrag, den Sie von Apple erhalten werden – dies ist weniger ihre 30 % Gebühr und auch alle lokalen Steuern, die sie erheben müssen (Benachrichtigung im Beispiel, dass US- und kanadische Verkäufer 70c für ein 99c-Produkt erhalten, während australische Verkäufer nur 63c aufgrund von "Waren & Dienstleistungen Steuer" erhalten, die auf den Verkaufspreis erhoben werden).

Die Preise Ihres Produkts können jederzeit aktualisiert werden, einschließlich geplanter Preisänderungen, die an einem zukünftigen Datum wirksam werden. Dieser Screenshot zeigt, wie eine zukünftige Preisänderung hinzugefügt wird – der Preis wird nur für den Monat September vorübergehend von Stufe 1 auf Stufe 3 geändert:

A future-dated price change where the price is being temporarily changed from tier 1 to tier 3 for the month of September only

Kostenlose Produkte werden nicht unterstützt

Obwohl Apple eine spezielle Kostenlose Abonnementoption für Newsstand-Apps bereitgestellt hat, ist es nicht möglich, einen Kostenlosen Preis für alle anderen In-App-Kauftypen festzulegen. Während Sie Preise für Verkaufsaktionen bearbeiten können (d. h. niedrigere) Preise, können Sie In-App-Einkäufe nicht über iTunes Verbinden "kostenlos" tätigen.

Lokalisierung

In iTunes Verbinden können Sie unterschiedliche Namen- und Beschreibungstexte für eine beliebige Anzahl unterstützter Sprachen eingeben. Jede Sprache kann über ein Popup hinzugefügt/bearbeitet werden:

Each language can be added/edited in via a popup

Wenn Sie Produktinformationen in Ihrer App anzeigen, steht ihnen der lokalisierte Text zur Anzeige über StoreKit zur Verfügung. Die Währungsanzeige muss auch lokalisiert werden, um die richtige Symbol- und Dezimalformatierung anzuzeigen – diese Formatierung wird später im Dokument behandelt.

App Store-Überprüfung

Identisch mit Apps – jedes Produkt wird von Apple überprüft, bevor es zum On-Sale zugelassen wird. Produkte können für unangemessene Inhalte im Namen oder in der Beschreibung abgelehnt werden, oder Apple kann entscheiden, dass Sie den falschen Produkttyp ausgewählt haben (z. B. Sie haben ein Buch- oder Magazinproblem erstellt, aber den Produkttyp Verbrauchsartikel verwendet). Produktrezensionen können so lange dauern, wie eine App-Überprüfung erfolgt.

Wenn eine App zum ersten Mal mit aktiviertem In-App-Einkauf übermittelt wird (unabhängig davon, ob es sich um eine neue App handelt oder die Funktionalität zu einer vorhandenen App hinzugefügt wurde), müssen Sie auch einige Produkte auswählen, die sie übermitteln sollen. Das iTunes Verbinden-Portal fordert Sie dazu auf, wie in diesem Screenshot gezeigt:

The iTunes Connect portal will prompt you to submit some products as well

Die Anwendung und die In-App-Käufe werden zusammen überprüft, sodass sie alle gleichzeitig genehmigt werden (damit die App nicht ohne genehmigte Produkte in den Store wechselt!).

Nachdem Ihre erste Version mit In-App-Kauffunktion genehmigt wurde, können Sie weitere Produkte hinzufügen und sie jederzeit zur Überprüfung übermitteln. Sie können auch eine neue Version zusammen mit bestimmten In-App-Kaufprodukten übermitteln, indem Sie die Seite "Versionsdetails " verwenden, wie die Aufforderung vorschlägt.

Weitere Informationen finden Sie in den App Store-Überprüfungsrichtlinien .

Teil 2 – Übersicht über das Store Kit und Die Produktinformationen