Skip to main content

.onPurchaseComplete


Forum|alt.badge.img+1

Hi. In my app I am calling the paywall when the user reaches more than a certain number of rows. Let's say 2. Then I present the paywall. After a successful purchase I have to close and re-open the app in order to trigger the valid subscription to allow more entries. How do I fix this inline at the time of the purchase. 

 

.sheet(isPresented: $isShowingPaywall) {

                            PaywallView()

                        }

Here is my save code where I trigger this.

 

func save() {

        let bgcolor = selectedColor.toHex() ?? "#FFFFFF"

        print("Before SubscriptionActive: \(userViewModel.isSubscriptionActive)")

        let isSubscriptionActive = userViewModel.isSubscriptionActive

       // print("AFter SubscriptionActive: \(userViewModel.isSubscriptionActive)")

      

        // Retrieve the total count from UserDefaults

        var totalCount = UserDefaults.standard.integer(forKey: "TotalCount")

      //  print("total count in beginning of save \(totalCount)")

        // Check if it's the first entry and there's no total count saved

        if data.isEmpty && totalCount == 0 {

            // Allow the save

        } else if !isSubscriptionActive && totalCount >= 3 && entryToEdit == nil {

            // Show the paywall

            isShowingPaywall = true

            return

        }

        

        if entryToEdit != nil {

            entryToEdit?.title = title

            entryToEdit?.reset = selectedResetOption.rawValue

            entryToEdit?.defaultcount = defaultcount

            entryToEdit?.locked = locked

            entryToEdit?.bgcolor = bgcolor

        } else {

            let data = dataclass(title: title,

                                 reset: selectedResetOption.rawValue,

                                 defaultcount: defaultcount,

                                 bgcolor: bgcolor,

                                 date: Date(),

                                 locked: locked

            )

            context.insert(data)

            totalCount += 1

            UserDefaults.standard.set(totalCount, forKey: "TotalCount")

        }

        dismiss()

    }

 

This post has been closed for comments

2 replies

jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 139 replies
  • May 27, 2024

Hi @bill-harned-e655d2! Just to confirm, you’re saying that after a successful purchase, the subscription is not unlocked for your customer? How are you setting this value `userViewModel.isSubscriptionActive`? You may want to fetch new CustomerInfo after the purchase and ensure the updated object is used in your viewmodel (docs). Let me know if that helps!


Forum|alt.badge.img+1

Thanks Jeffrey - I will revisit and see if I can figure out how to do that. (new developer here) 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings