Verbrauchsmaterial vs. non-consumable in iOS
Wir sind drei Jungs, die sich freies Spiel für das iPhone, die über den App-Store für fast ein Jahr.
Die app ist ein Spiel, wo Sie erstellen einen Benutzer-oder login mit Ihrem Facebook-Anmeldeinformationen. Sie sind in der Lage, vom Spiel Abmelden und wieder anmelden mit einem anderen Konto.
Haben wir jetzt aktualisiert die app mit der upgrade-Möglichkeit die user zu einem premium-user. Erlauben Sie persönlichen und globalen Spiel-Statistiken.
Aber Apple gibt uns die Kopfschmerzen in den Genehmigungsprozess, und weigert sich zu akzeptieren, unsere In-App-Kauf. Zuerst würden Sie nicht genehmigen, denn es hatte keine Schaltfläche wiederherstellen. Dann, wenn wir Ihnen sagten, eine Schaltfläche "wiederherstellen" war nicht erforderlich, da es war von Verbrauchsmaterialien zu erwerben, die Sie jetzt fordern wir ändern, um eine non-consumable, und fügen Sie die Schaltfläche wiederherstellen.
Betrachten Sie dieses Szenario, wenn Kauf non-consumable.
- Benutzer anmeldet.
- Erweiterungen durch den Benutzer-account zu premium
- Benutzer sich abmeldet.
- Benutzer meldet sich mit einem anderen Konto.
- Benutzer stellt die bisherigen Kauf.
Dies würde Ihnen ermöglichen, zu aktualisieren, zwei Konten zu premium -, aber mit nur einem Kauf.
Apples argument ist, dass unsere Nutzer müssen in der Lage sein, um Käufe wiederherstellen, wenn ein neues Gerät eingerichtet ist, oder ein Gerät wiederhergestellt wird.
Aber das ist nicht die Art, wie es funktioniert. Benutzer aktualisieren Ihre Konten zu premium-Konten. Nun, wenn Sie ein neues Gerät kaufen oder stellt ein vorhandenes Gerät, melden Sie sich einfach in Ihre bestehenden Spiel-account, und das upgrade verfügbar sein wird, weil wir auf der server-Seite markiert hat, den account als premium-account.
Also meine Frage ist grundsätzlich. Waren wir völlig falsch, wenn wir wählen, um ein Verbrauchsmaterial, statt einen non-consumable. Und wenn ja, wie sollten Sie einen non-consumable umgesetzt werden, um (potenziell) erworben haben, mehr als einmal mit verschiedenen Spiel-accounts auf dem gleichen Gerät?
Und zweitens, wenn wir richtig über die Verwendung von a consumable in-app-Kauf, was sollen wir sagen, davon zu überzeugen, Apple -, dass wir auf dem richtigen Weg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das premium-Konto ist etwas, das Ihre Nutzer zu kaufen, nur einmal, dann ist Apple auf jeden Fall Recht, Sie zu bitten, switch to non-consumable in-app.
Dem Szenario, das Sie beschrieben, ist durchaus möglich (ich hatte, um ehrlich zu), aber wenn Sie hinzufügen, server-seitige überprüfung von in-app-Einnahmen vor dem entsperren die premium-Funktion (speichert alle Transaktionen, die zu einem Benutzer) haben Sie die chance, stellen Sie sicher, dass der Kauf der neuen oder wiederhergestellten überprüfung der Felder
original_transaction_id
undoriginal_purchase_date
in den Erhalt der Daten. Auf diese Weise können Sie sehen, wenn der Benutzer die Wiederherstellung der Kauf ist das gleiche, das Sie ursprünglich gekauft es (vielleicht überprüfen Ihre facebook-Benutzer-id).Sowieso, die Erfahrung zeigte mir, dass die chance dass das passiert ist nicht wirklich hoch und ich würde nicht empfehlen, die Umsetzung dieser check (obwohl server-seitige Validierung ist fast immer ein muss 😉 )
Nach der "Wiederherstellung Transaktionen" Abschnitt der In-App Purchase Programming Guide:
Wenn Ihre Anwendung unterstützt die Produkt-Typen, die muss wieder hergestellt werden, müssen Sie eine Schnittstelle, die ermöglicht Benutzern das wiederherstellen dieser Käufe.
Wenn Ihre app enthält, non-consumable kaufen, und wenn Sie nicht über eine Schaltfläche "wiederherstellen" werden von apple nicht genehmigen, app.
Dies wurde notwendig durch apple ab Juni 2012.
Also um deine Frage zu beantworten: Nein, es scheint, dass Sie verwenden müssen
restoreCompletedTransactions
.Hoffe es hilft dir.