2010-09-27 6 views
8

Ich entwickle eine App, in der der Benutzer eine Funktion für einen bestimmten Zeitraum abonnieren kann. Der Abonnementzeitraum wird auf unserem eigenen Server überprüft und nach dieser Zeit muss der Benutzer ein neues Abonnement kaufen.iPhone In App kaufen Abonnements bezahlen für erneuern?

Jetzt bin ich verwirrt über die Warnung von Apple: Nach dem "Möchtest du einen ... kaufen" - Alarm kommt ein anderer mit der Notiz, dass der Benutzer bereits für das Abonnement bezahlt hat und wenn er will erneuern!

Führt dies WIRKLICH zu einer neuen Zahlung?

+0

Ich verstehe Ihre Frage nicht ganz. Erstellen Sie die zweite Warnung? – Emil

+0

Nein, die Warnung stammt von Apple. – Sebrassi

+0

Die Warnung stammt von Apple, aber IHR CODE löst sie aus. Siehe meine Antwort unten. – Olie

Antwort

3

Sie werden von Apple aufgefordert, Ihre eigene Kauf-UI, entweder AppStore-Like oder eine Warnung. Nachdem der Nutzer den Kauf bestätigt hat, sendet Ihre App SKPAyment, wodurch das SDK die Identität des Nutzers und den von ihm gezahlten Betrag überprüft (was meiner Meinung nach der zweite Dialog ist, auf den Sie sich beziehen).

Jedes Mal, wenn ein Benutzer Ihnen Geld über iTunes gibt, wird ein iTunes Dialog irgendwo sein. Apple möchte nicht, dass Entwickler diesen Schritt überspringen und kostenloses Geld von ahnungslosen Benutzern erhalten. Die Lösung besteht darin, es zu entwerfen: Sie wissen, dass der Dialog kommt, also geben Sie dem Benutzer nicht zuerst einen redundanten Dialog. Viele Apps verwenden Info-Seiten mit "Kaufen" -Schaltflächen, um dies zu umgehen - statt zwei Kauf-Dialoge Rücken an Rücken, sehen sie eine Kauf-Info-Seite, drücken Sie eine Taste, dann Holen Sie sich den Apple SDK Kaufdialog.

Wenn Sie einen Abonnement-Service wünschen, dann müssen Sie das Element in iTunes Connect als ein Abonnement, kein Verbrauchsmaterial oder Nicht-Verbrauchsartikel einstellen. Sobald Sie ein IAP-Element erstellen, können Sie nicht ändern seinen Typ, so wählen Sie korrekt zum Zeitpunkt der Erstellung. Subskriptionen werden nicht wie Verbrauchsmaterialien behandelt, obwohl sie im Grunde nur zeitbasierte Verbrauchsmaterialien sind. Apple erzwingt die unterschiedliche Formulierung, um dem Benutzer mitzuteilen, dass eines zu einem bestimmten Datum abläuft, das andere abläuft, nachdem eine nicht zeitgebundene Ressource aufgebraucht ist.

Sie müssen den Kauf des Abonnements auf Ihren eigenen Servern verfolgen (um Quittungen zu überprüfen und Piraterie zu beseitigen), und Ihre Apps sollten zur richtigen Zeit eine Verlängerung beantragen. Was den App-Store angeht, so bedeutet das erneute Abonnement, dass das Abonnement erneut gekauft wird. Sie sehen also, dass das SDK beim Benutzer einige Dialoge öffnet, in denen er aufgefordert wird, den Kauf zu bestätigen. Derzeit gibt es auch keine Option zur automatischen Verlängerung des Abonnements. Aus diesen Gründen bieten viele Entwickler mehrmonatige Abonnements an.

0

Sie können alle In-App-Kauf (IAP) -Aufgaben in einer Sandbox testen, die nicht zu tatsächlichen Zahlungen führt.

Wie Ihre App die verschiedenen Transaktionen behandelt, hängt davon ab, ob der Dialog "Möchten Sie kaufen ..." angezeigt wird.

Offensichtlich sollten Sie, sobald der Benutzer ein Abonnement kauft, das speichern (lesen Sie: NSUserDefaults), und die Warnung "Möchten Sie kaufen" nicht aufstellen, wenn sie alle bezahlt sind.

Wenn dies Ihre Frage nicht beantwortet, fragen Sie vielleicht etwas genauer. Insbesondere ist es die Ausführung von IAP-bezogenem Code, die das "Möchten Sie kaufen?" Auslöst. aufmerksam; Sie müssen dies also tun/tun, wenn Sie Kenntnis von der Abonnementzahlung des Benutzers haben.

1

Sie scheinen zu erwarten, dass der Apple Store weiß, wann das Benutzerabonnement abgelaufen ist. Es tut nicht. Ihre Anwendung kann daher Abonnements jederzeit erneuern, sogar jede Minute, wenn Sie möchten, Apple Store betrachtet dies als gültige Verlängerung.Ihre Anwendung (oder wahrscheinlich Ihr Server) muss die Abrechnung durchführen, überprüfen, wie lange die letzte erfolgreiche Abonnementtransaktion des Benutzers noch andauert, und wenn es nicht bald genug war, dann überspringen Sie einfach die Abonnement-Zahlungstransaktion.