Wie um zu testen, SKPaymentTransactionStateDeferred?
iOS 8 werden die Einführung bald. Wir haben Xcode beta 6 atm, aber immer noch nicht finden keine docs auf , wie Sie richtig zu testen, Family Sharing (oder habe ich etwas übersehen?). Meine Frage ist, wie man richtig setup Sandbox mit Eltern/Kind? Ich habe versucht, damit es funktioniert in der beta 1 ohne Freude.
Irgendwelche Tipps, Jungs?
Update:
Zwei in Verbindung stehende Geschichten auf der Apple-Developer-Forum:
- Wie ein Kinder-sandbox-account bei iTunes Connect?(https://devforums.apple.com/message/1030357#1030357)
- Prüfung "Bitten, zu Kaufen" in der sandbox (https://devforums.apple.com/message/1005569#1005569)
- Ich habe getan, ein wenig Forschung, und leider gibt es keine Dokumentation oder Methodik zu testen habe ich hier gefunden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe ein wenig Fortschritte zu diesem Thema, also dachte ich würde melden in. Plus die, die ich gefunden habe, einen offensichtlichen Fehler, den ich habe an Apple berichtet.
Was ich getan habe, ist die folgende:
1) Erstellen einer übergeordneten-test (sandbox) account in iTunes Connect, und erstellen Sie eine untergeordnete test-account. Diese sind eigentlich nur zwei test-accounts in iTunes Connect. Rufen Sie P und C für Eltern und Kind.
2) Mit beiden accounts, gehen Sie zu https://appleid.apple.com und ändern Sie das Jahr für Ihre Alter. iTunes Connect nicht lassen Sie dies tun. Aus irgendeinem Grund, den Prozess mit family sharing funktioniert nicht, es sei denn, Alter haben ein Jahr. Ich habe festgestellt, dass Sie zu tun haben, die Auswahl zweimal auf die Liste "Jahr" bei https://appleid.apple.com. Seltsam. Ich meine P als ältere (einige Erwachsenen-Alter) und meine C als jüngere.
3) Auf einem apple-Gerät (iPhone, läuft iOS8) ich setup family sharing unter Einstellungen > iCloud für das P-Konto. Ich bin angemeldet und iTunes auf diesem Gerät mit meinem real-iTunes-Apple-Id (die hat meine Zahlung info).
4) ich habe dann lade meine C apple-id ein Teil meiner Familie, unter Einstellungen > iCloud.
5) ich akzeptiere die Einladung von P (auf meinem iPad, auch mit iOS8), die mit der Unterzeichnung der iCloud auf das andere Gerät als C.
6) Auf mein iPhone, schalte ich auf "Ask To Buy" für die C-Familie Mitglied.
Nun, ich bin bereit, zu versuchen einen test kaufen, da C auf meinem Sandbox-app. Nachdem ich gehen Sie durch den normalen Prozess in meinem app-store bekomme ich die folgende Warnung:
wenn ich Tippen Sie auf "Fragen", bekomme ich die nächste Warnung:
Nun, ich habe versucht, zwei Optionen, mit separate Einkäufe. Ich habe versucht die "OK" - option, die sollte eine Benachrichtigung senden, das P-Konto. Ich habe noch nicht erhalten eine Benachrichtigung auf meinem P-Konto (noch angemeldet iCloud als dass auf meinem iPad).
Ich habe auch versucht die "Billigen Person" auf die option "Kind"s iPad. Ich verwende das P-Konto, und ich geben Sie, wenn Sie auf die nächste Warnung:
Bekomme ich keine Fehler nach, die, so scheint es, die Genehmigung In Person gearbeitet, aber ich habe noch den Kauf konvertieren SKPaymentTransactionStatePurchased Zustand. Alle aufgeschobenen Einkäufe noch in die Zahlung Warteschlange der app, die jeweils mit dem Zustand SKPaymentTransactionStateDeferred. Wenn ich die app starten, den Status jeder Bestellung, die sich noch in die Warteschlange zurückgestellt.
Weiter, fragte ich mich, ob gab es einige problem mit bestimmten test-iTunes-account für C, also machte ich ein zweites Kind-Konto, Anruf, C2, und versucht, es als ein Kind unter P auf meinem iPhone. Allerdings betreibe ich ein weiteres problem. Ich bekomme die Warnung (auf dem iPad), wenn ich versuche, nehmen Sie die Einladung an ein Familienmitglied unter P für C2:
Mir, diese Einschränkung, die auf iCloud-account sollte nicht für test-accounts. Dies ist der offensichtliche Fehler ist, ich habe an Apple berichtet.
So, in Zusammenfassung, ich bin noch nicht 100% überzeugt, dass mein SKPaymentTransactionStateDeferred Umsetzung arbeitet. Wir werden sehen, ob Apple kommt zu mir zurück.
SKError
die der Beobachter erhält, wenn die aufgeschobene Kauf abgelehnt wird?Von iOS 8.3 gibt es eine neue fahne verfügbar für SKPayment:
simulatesAskToBuyInSandbox
.So, in Fall, dass Sie brauchen, um zu testen SKPaymentTransactionStateDeferred Zustand ist, den Sie initialisieren
neue
SKMutablePayment
- und set -simulatesAskToBuyInSandbox = YES
.https://developer.apple.com/library/prerelease/ios/releasenotes/General/iOS83APIDiffs/frameworks/StoreKit.html
PS. WARNUNG: Leute beschweren sich, dass diese API nicht richtig funktioniert (siehe Kommentare)
iOS 9.2.1, Xcode 7.2.1, ARC aktiviert
Bestätigt! Die
simulatesAskToBuyInSandbox
Eigenschaft bewirkt nicht die Zahlung Warteschlange Beobachter zu registrieren, dieSKPaymentTransactionStateDeferred
Zustand. Stattdessen nur die Zahlung zu verarbeiten, und der Beobachter registriert dasSKPaymentTransactionStatePurchased
Zustand.Die einzige Untersuchung, die ich durchführen konnte war ein Telefonat mit meiner Methode für die Ratenzahlung, wenn der Beobachter registriert das
SKPaymentTransactionStatePurchased
Staat statt meiner üblichen Methode und nicht rufen:Diese weiterhin die Transaktion auf app. Kündigung, und gibt Ihnen die Fähigkeit zu testen, die Benutzer sich nicht mit Abschluss der Bestellung (z.B. bei Verlust des Empfangs während der Endphase der Einkauf) und latente Kauf. Das ist vorausgesetzt, Sie Ihre Kauf-Methode übergibt eine latente parameter, wie beschrieben in Listing 4-2 Reagiert Transaktion Status in In-App-Kauf-Guide: Die Bereitstellung Von Produkten. Hier ist, was die Methode würde wie folgt Aussehen:
Simulieren aufgehängt Einkauf:
Simulieren latente:
Hinweis: Bei der app. neu starten, die Apple im app. kaufen Mechanismus wird Fragen, Ihre Anmeldeinformationen, wenn Sie nicht alle anderen Zahlungen für die Anmeldeinformationen, die app deinstalliert., oder signiert, aus der "iTunes und App Stores" in "Einstellungen". Auch, wenn Sie Tippen Sie auf "Abbrechen" hier, dann wird die Transaktion nicht scheitern, weil die Zahlung Warteschlange Beobachter wird sich die
SKPaymentTransactionStatePurchased
Zustand.UPDATE 3/4/2016:
Fand ich diesen Vorschlag von Apple, die könnten hilfreich sein, es ist eine ausgefallene Art, das zu tun, was ich vorgeschlagen:
Hoffe, das hilft! Cheers.
Beim erstellen von child-Konto nach Chris Prinz ' s Antwort, stellen Sie sicher, dass Sie Ihr "Alter" zwischen 13 und 18 Jahre alt. Wenn Sie es weniger als 13 sind, können Sie nicht überprüfen sein Alter (auch wenn Sie fügen Sie eine Kreditkarte zu Ihrem P-Konto). Wenn es über 18 - option zu aktivieren, Fragen zu kaufen, ist verschwunden. Stunden damit verbracht, herauszufinden, was ich falsch mache.
Außerdem müssen Sie zum erstellen von C-Konto via iTunes Connect, nicht über "Create Kindes-Konto" - option im " family-sharing-Bildschirm.
Wünschte, ich könnte den Kommentar, aber da ich nicht 50 Ruf Punkte, ich habe zum erstellen einer separaten Antwort.
Als es stellt sich heraus, es scheint, dass der sandbox-Umgebung nicht unterstützt die Eltern-Kind-Beziehung, so werden die Nachrichten nicht gesendet werden, wenn die Konten in Frage eingerichtet, wie bereits in der Antwort von @ChrisPrince.
Den Artikel, den ich ausgegraben finden Sie hier: https://forums.developer.apple.com/thread/38561#117143
Snippet von Bedeutung aus der Antwort vom apple Mitarbeiter
Den rest der Artikel beschreibt die Richtlinien und fließt für Fragen zu support Kaufen, aber die Tests müssen getan werden, in der Produktion Umwelt, wo das Kind/Elternteil kontobeziehung aktiv ist.