inApp Kauf mit TransactionObserver

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • inApp Kauf mit TransactionObserver

    Hi!

    Möchte inApp Käufe anzeigen und logisch korrekt durchführen.

    Dieses Vorgehen müsste korrekt sein oder?
    1. TransactionObserver in didFinishLaunchingWithOptions registrieren
    2. VC mit den Produkten anzeigen
    3. Käufe über eine Methode im Appdelegate auslösen (?)
    zumindest habe ich den code so verstanden:

    Quellcode

    1. ​- (BOOL)application:(UIApplication *)application
    2. didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    3. // Always register for this, transaction might finish after app restart!
    4. [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    5. }
    6. - (void) buy:(SKProduct *)product {
    7. SKPayment *payment = [SKPayment paymentWithProduct:product];
    8. [[SKPaymentQueue defaultQueue] addPayment:payment];
    9. }


    Hab die Infos von hier: ralfebert.de/ios/in-app-purchases/

    Danke!!
  • Hi,
    deine Nummerierung ist richtig, allerdings wirst du mit dem angegebenem Code keinen vollständigen InApp Kauf auslösen können.

    Was ist mit deinen Produkten die für den InApp Kauf zur Verfügung stehen? Die werden gar nicht abgerufen.
    Des Weiteren gibst du keine Meldung aus, ob der Kauf erfolgreich war oder nicht.

    Für InApp Käufe verwendest du das StoreKit, wie auf der Seite schon steht
    • "SKProductsRequest" fragt die Produkte ab.
    • "SKPayment" löst den Kauf aus

    Auf der Seite, die du mit angegeben hast, stehen die restlichen Codeschnipsel.
    Learning by doing :P
    Ich putze hier nur.. :P
  • Ok das klappt soweit.

    Ich speichere ein "kauf hat geklappt"-merker pro user in einer Datenbank.Jetzt kann es natürlich passieren, dass genau in dem Moment kein Internet besteht. Macht es da Sinn folgende Zeile erst NACH erfolgreicher DB-Speicherung auszuführen?

    Quellcode

    1. ​[[SKPaymentQueue defaultQueue] finishTransaction:transaction];


    Oder anders:
    Wie würdet ihr die transaction speichern bis der Merker in der DB erfolgreich gesetzt wurde?