Skip to main content
Question

Where is the documentation for PaywallView

  • September 27, 2025
  • 1 reply
  • 33 views

Forum|alt.badge.img

Hi

where can I find the documentation for PaywallView.

currently I’m using it like this:

PaywallView()
.onRequestedDismissal {
state = .paymentRequiredInfo
}
.onPurchaseCompleted { CustomerInfo in
state = .ready
}
.onPurchaseFailure({ NSError in
state = .error(StaticErrorMessage("Payment error"))
})

After Purchase is completed, callback method onPurchaseCompleted is not called. If I try to purchase again I’m getting “already purchased” dialog info.

So my question are why onPurchaseCompleted is not called and where is the documentation for PaywallView.

Regards

This post has been closed for comments

1 reply

guilherme
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • October 1, 2025

Hey ​@user432 ,

Our documentation on Displaying Paywalls can be found here: https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls#platform-specific-instructions , and that code snippet looks accurate to the different listeners.

Could I ask you to expand it a bit further, just to account for some others:

PaywallView()
.onPurchaseStarted { package in
print("🔵 Purchase started: \(package.identifier)")
}
.onPurchaseCompleted { customerInfo in
print("✅ Purchase completed: \(customerInfo.entitlements)")
}
.onPurchaseCancelled {
print("❌ Purchase cancelled")
}
.onPurchaseFailure { error in
print("🔴 Purchase failed: \(error)")
}
.onRestoreStarted {
print("🔵 Restore started")
}
.onRestoreCompleted { customerInfo in
print("✅ Restore completed: \(customerInfo.entitlements)")
}
.onRestoreFailure { error in
print("🔴 Restore failed: \(error)")
}
.onRequestedDismissal {
print("👋 Dismissal requested")
}

Also, are you testing this in Sandbox? Asking as Sandbox is notoriously flaky, so some actions can be delayed up to 1 minute some times. Could you run this test and interact with the Paywall but making sure that you leave it “be” for longer, even 1 full minute?

In the Production environment this won’t be a concern, but Sandbox is indeed unstable.

If this is still not happening even after that long await time, do let me know and we can take it from there!

Thanks,