Wie können automatisch verlängerbare Abonnements an interne Benutzer gebunden werden, nicht an Apple IDs?

9

Ich habe anscheinend eine Mauer getroffen, aber im Wesentlichen habe ich in meiner App eine Login-Seite für den Nutzer und eine Account-Seite. Wenn der Benutzer meine App öffnet und ein neues Konto erstellt, werden ihre Informationen auf einem Firebase Server (BaSS) gespeichert.

Nun ist meine Frage, wie ich es so machen würde, dass für jeden Benutzer, der über meine Anwendung ein Konto erstellt hat, die Möglichkeit besteht, meine Anwendung zu abonnieren, und dieses Abonnement ist nur für ihr Konto gültig (nicht Apple ID) ). Wenn der Benutzer derzeit ein Konto bei mir erstellt und fortfährt, einen Dienst zu abonnieren, funktioniert alles in dem Sinne, dass sie auf die vollständigen Funktionen der App zugreifen können.

Wenn sie sich jedoch abmelden und ein anderes Konto erstellen, weil die Abonnements im Moment so angelegt sind, dass sie an die Apple IDs des Benutzers gebunden sind, hätte ein anderes Konto oder ein Konto vollen Zugriff zur Anwendung. Nicht nur der eine gekauft.

Ich denke also, meine Frage ist, wie ich es so machen würde, dass jedes Abonnement / Kauf an meine internen Benutzer gebunden ist, nicht die Apple ID , die auf dem Gerät angemeldet ist. (Im Wesentlichen wie pandora oder spotify , bei denen Ihr Zugriff auf die App von Ihrem Konto abhängt, nicht von Ihrer Apple ID)

Laut Apple-Dokumentation:

  

Behalten Sie die Verwendung Ihres eigenen Servers bei   Senden Sie eine Kopie des Belegs zusammen mit einer Art von Zugangsdaten oder einer Kennung an Ihren Server, damit Sie verfolgen können, welche Quittungen zu einem bestimmten Benutzer gehören. Lassen Sie beispielsweise die Benutzer sich mit einem E-Mail- oder Benutzernamen und einem Kennwort gegenüber Ihrem Server identifizieren. Verwenden Sie nicht die identifierForVendor-Eigenschaft von UIDevice. Sie können sie nicht zum Identifizieren und Wiederherstellen von Käufen verwenden, die von demselben Benutzer auf einem anderen Gerät vorgenommen wurden, da unterschiedliche Geräte unterschiedliche Werte für diese Eigenschaft aufweisen.

Wie würde ich etwas mit Firebase machen?

    
Edward Lim 13.03.2017, 19:21
quelle

1 Antwort

3

Wenn die Transaktion in iTunes abgeschlossen wurde, erhalten Sie eine Transaktionsquittung für diesen Kauf. Dieser Beleg enthält verschiedene Informationen über den Kauf. Sie können diesen Beleg in Ihrer DB speichern. In diesem Beleg gibt es auch ein Feld namens "original_transaciton_identifier (OTI)", dieser Bezeichner bezeichnet die eindeutige Kauf-ID, die von dieser Apple-ID stammt. Speichern Sie diesen eindeutigen Bezeichner in Ihrer Datenbank gegen die Benutzer-ID, die ihn zuerst sendet.

Wenn nun die Benutzer-ID A Ihnen eine OTI 11 sendet, speichern Sie diese in Ihrer Datenbank gegen Benutzer A. Wenn sich Benutzer B anmeldet und versucht, den Kauf wiederherzustellen, senden Sie die aktualisierte Quittung an Ihren Server und entfernen Sie die OTI Quittung, vergleiche es mit den OTIs, die in deiner Datenbank gespeichert sind, wenn du nichts findest, dann bedeutet es einen neuen Kauf, sonst weißt du, wem dieser Kauf gehört und du kannst das dem Benutzer B mitteilen, dass dies mit einigen verknüpft ist Andere Benutzer, versuchen Sie einen Kauf mit einem neuen iTunes Konto.

    
Vikas Dadheech 21.03.2017 11:24
quelle