0

Ich suchte viel nach Lösungen/zumindest Antworten für mein Problem oder Missverständnis. Es gibt eine Menge Dokumentation über die Implementierung von IAP nativ für iOS in Objective-C - das ist auch hilfreich bis zu einer bestimmten Ebene, aber im Zusammenhang mit der Implementierung mit TiStorekit (Appcelerator Titanium) Ich bin im Moment vollständig blockiert.Wie bekomme ich das Ablaufdatum von auto renewable-subscription

Grundsätzlich ist es einfach. Ich versuche einige Premium-Pakete in Form von automatisch verlängerbaren Abonnements für den Benutzer bereitzustellen. Diese Produkte sind in iTunesConnect definiert und ich kann das Produkt mit Informationen über Titel und Beschreibung anfordern. Ich möchte verstehen, wie der Prozess in einer Titanium (TiStorekit) Implementierung mit konkreten Beispielen funktionieren kann (das fehlt in der Dokumentation völlig). Es ist gut erklärt, welche Art von Funktionen und Zuhörern Sie brauchen und wir landen zum Beispiel nach dem Kauf eines Produkts, aber nie wo die Daten der Produkte sind und wie die Struktur der Daten aussieht.

Das bringt das ganze Thema für mich zu einer Art Blackbox-Entwicklung & auch Tests funktioniert so. Aus der App Perspektive wollte ich nur wissen, wie ich die Informationen bekommen kann, wenn das Abonnement (der Benutzer kaufte vielleicht vor Sekunden) ausläuft. Wo finde ich diese Informationen und wie kann ich darauf zugreifen?

In allen Dokumentationen, die ich gelesen habe, scheinen die Felder dort zu sein und verfügbar zu sein, aber ich kann überhaupt kein Ablaufdatum lesen. Aus konzeptioneller Sicht habe ich keine serverseitige Validierung der Belege. Ich möchte den Empfang des Benutzers auf dem Server speichern, und wenn er sich anmeldet, würde ich den Beleg laden (wenn als "Premium" Kunde markiert) und gegen Apple verifizieren. Wenn es noch gültig ist, dann ist alles in Ordnung und ich weiß, dass es entweder erneuert oder noch innerhalb der gültigen Dauer ist.

Ich habe jetzt alles ausprobiert, was ich in dieser Dokumentation und anderen Artikeln gefunden habe. Das einzige, was ich erreicht habe, war, die Quittung von Storekit zu analysieren, wenn Sie Einkäufe wiederherstellen oder etwas kaufen. Die Quittung enthält eine Signatur und "Kauf-Info", aber ich kann kein einziges hilfreiches Attribut daraus lesen.

Zunächst einmal die Frage auf einen Punkt zu bringen:

Wo und wie kann ich F. E. zugreifen (!) Ablaufdatum für automatisch verlängerbare Abonnements, basierend auf einer TiStorekit (Appcelerator) Implementierung?

Hoffnung auf Rettung, weblion

+0

Ich kann Ihnen nicht mit Titanium Besonderheiten helfen, aber im Allgemeinen übergeben Sie den App-Empfang an Apples Validation Server. Der Überprüfungsserver gibt JSON zurück. Eines der Felder ist 'latest_receipt_info'. Dies ist ein Array von gekauften Produkten, einschließlich Abonnements mit Ablaufdatum. – Paulw11

+0

Hallo Paulw11, vielen Dank für deine Antwort. Das ist etwas, was ich überprüfen muss, klingt wie ein guter Ort, um zu finden, was ich brauche. In der Zwischenzeit habe ich auch die Quittung gefunden, die ich nach einem erfolgreichen Kauf erhalten habe und auch eine Art Liste, die viele Transaktionen enthält, die alle Belege der Kaufgeschichte enthalten. Wenn ich die transactionId des frisch gekauften Produktempfangs nehme und nach transactionId in der erwähnten Liste suche, stimmt die letzte überein. :-) Ist die Verifizierung des Belegs zusätzlich zur StoreKit Verifikation/Validierung erforderlich? – weblion

Antwort

0

Um den Erhalt Verwendung

Storekit.addEventListener('transactionState', function (evt) 

case Storekit.TRANSACTION_STATE_PURCHASED: 

// Receive the receipt and decode it 
///********************************************** 
    var receiptB64String = Ti.Utils.base64encode(evt.receipt).text; 

Dann senden Sie es auf Ihren Webserver zu erhalten, und mit einem PHP-Skript die Quittung über den Apple-Server überprüfen.

und Sie erhalten eine Json Antwort wie folgt:

Valid Json 

{ "Quittung": { "original_purchase_date_pst": "2016.10.15 07.24.27 America/Los_Angeles", " unique_identifier ": "2716364e7fe61118b5fbfa12eaf3a7506a5e1c32" "original_transaction_id": "1000000242683498" "expires_date": "1476826579000" "TRANSACTION_ID": "1000000243499464" "Menge": "1", "product_id":" 6months ", " item_i d ": "1164542704" "bid": "com.xxxxxxx.xxxxxxx" "unique_vendor_identifier": "xxxxxx-xxx-xxxxxxxxxx" "web_order_line_item_id": "1000000033471963" "BVRS": "1.0" , "expires_date_formatted": "2016-10-18 21:36:19 Etc/GMT", "Kaufdatum": "2016-10-18 21:06:19 Etc/GMT", "Kaufdatum_ms": "1476824779000 ", " expires_date_formatted_pst ":" 2016-10-18 14:36:19 Amerika/Los_Angeles ", " purchase_date_pst ":" 2016-10-18 14:06:19 Amerika/Los_Angeles ", " original_purchase_date ":" 2016-10-15 14:24:27 Etc/GMT ", " original_kaufdatum_ms ":" 1476541467000 " }, " neuesten_expire d_receipt_info ": { "original_purchase_date_pst": "2016.10.15 07.24.27 America/Los_Angeles", "unique_identifier": "2716364e7fe61118b5fbfa12eaf3a7506a5e1c32", "original_transaction_id": "1000000242683498", "expires_date":" 1476826579000 “ "TRANSACTION_ID": "1000000243499464", "Quantität": "1", "product_id": "6 Monate", "item_id": "1164542704", "bid": "com.xxxxxx.xxxxxxx" , "unique_vendor_identifier": "xxxxxxxx-9CB8-xxxx-B1F4-xxxxxxxxxxx" "web_order_line_item_id": "1000000033471963" "BVRS": "1,0" "expires_date_formatted": „2016.10.18 21.36 : 19 Etc/GMT ", "purchase_date": "2016-10-18 21:06:19 Etc./GMT", "purchase_date_ms": "1476824779000", "expires_date_formatted_pst": "2016-10-18 14:36:19 America/Los_Angeles" , "purchase_date_pst": "2016-10-18 14:06:19 Amerika/Los_Angeles", "original_purchase_date": "2016-10-15 14:24:27 Etc/GMT", "original_purchase_date_ms": "1476541467000 " }, "status": 21006 }

Der Status 21006 bedeutet diese Quittung abgelaufen ist. Speichern Sie die Informationen in einer Datenbank in der App oder auf einem Server.

Verwandte Themen