docs: Add Capacitor tenant app integration notes
This commit is contained in:
64
docs/capacitor-tenant-app.txt
Normal file
64
docs/capacitor-tenant-app.txt
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
Yes: with Capacitor you can sell one/off event packs and subscriptions inside the tenant app, but you
|
||||||
|
must follow Apple/Google in-app purchase rules. For iOS in the U.S., digital content/services bought in-app must use
|
||||||
|
Apple IAP; for Android on Play you must use Google Play Billing (with limited “User Choice Billing” alternatives in
|
||||||
|
some regions). Capacitor itself is fine; you’ll integrate store billing via a plugin.
|
||||||
|
|
||||||
|
Policy Reality
|
||||||
|
|
||||||
|
- iOS: Digital content/services consumed in the app must use In‑App Purchase. Apple now documents an entitlement to
|
||||||
|
link to your website for purchases, but usage is constrained and varies by app category/region; the safe default in
|
||||||
|
the U.S. is native IAP for in-app purchase flows. (developer.apple.com (https://developer.apple.com/app-store/review/
|
||||||
|
guidelines/?utm_source=openai))
|
||||||
|
- EU nuance: Apple has been loosening anti‑steering restrictions under the DMA; in the EU developers can direct
|
||||||
|
users to external payment with different fees, pending evolving terms. Don’t rely on this outside the EU. (apnews.com
|
||||||
|
(https://apnews.com/article/f68dbd203284ecab38860d8da2140899?utm_source=openai), reuters.com (https://www.reuters.com/
|
||||||
|
sustainability/boards-policy-regulation/apple-set-stave-off-daily-fines-eu-accept-app-store-changes-sources-say-2025-
|
||||||
|
07-22/?utm_source=openai))
|
||||||
|
- Android: Apps on Google Play that sell digital goods must use Play Billing. Google’s “User Choice Billing” allows
|
||||||
|
an alternative in select countries (e.g., U.K.) with a 4% fee reduction; you still owe Play service fees. (blog.google
|
||||||
|
(https://blog.google/intl/en-in/products/platforms/answering-your-faqs-about-google-play/?utm_source=openai),
|
||||||
|
play.google.com (https://play.google.com/console/about/programs/userchoicepilot/?utm_source=openai), techcrunch.com
|
||||||
|
(https://techcrunch.com/2025/03/28/google-rolls-out-user-choice-billing-on-google-play-in-the-uk/?utm_source=openai))
|
||||||
|
|
||||||
|
Is It A Good Idea?
|
||||||
|
|
||||||
|
- For self-serve planners: Yes—native IAP lowers friction and can lift conversion; you’ll pay store fees but get
|
||||||
|
instant recovery, tax handling, and easy restore on new devices.
|
||||||
|
- For photobooth operators (B2B): Often better to keep web/Invoice/Stripe as the primary channel. In the app, let them
|
||||||
|
sign in and use existing entitlements; only expose IAP if you want true self‑serve on mobile and accept fees.
|
||||||
|
|
||||||
|
How To Implement With Capacitor
|
||||||
|
|
||||||
|
- Billing layer: Use RevenueCat’s Capacitor SDK to unify StoreKit + Play Billing, handle receipts, entitlements,
|
||||||
|
webhooks, and “restore purchases.” This keeps your Laravel backend authoritative via webhooks. (github.com (https://
|
||||||
|
github.com/RevenueCat/purchases-capacitor?utm_source=openai), revenuecat.com (https://www.revenuecat.com/docs/getting-
|
||||||
|
started/installation/capacitor?utm_source=openai))
|
||||||
|
- Product model:
|
||||||
|
- Subscriptions: “Pro Operator” monthly/annual tiers (unlimited or quota per month).
|
||||||
|
- Consumables: “Event Packs” (e.g., 1, 5, 20 events) as consumables on both stores.
|
||||||
|
- Map SKUs → backend entitlements (events_remaining, max_guests, features).
|
||||||
|
- Web checkout coexistence:
|
||||||
|
- Web (PWA/desktop): Stripe for subscriptions and invoices.
|
||||||
|
- Native iOS (US): Do not show external purchase links; show “Manage Subscription” (opens App Store subscription
|
||||||
|
management) and use IAP for in‑app purchase. (developer.apple.com (https://developer.apple.com/app-store/review/
|
||||||
|
guidelines/?utm_source=openai))
|
||||||
|
- Native Android: Offer Play Billing; optionally add User Choice Billing where allowed. (play.google.com (https://
|
||||||
|
play.google.com/console/about/programs/userchoicepilot/?utm_source=openai))
|
||||||
|
|
||||||
|
Auth and Tenancy
|
||||||
|
|
||||||
|
- Use token-based auth for the native app.
|
||||||
|
- On first run, select/confirm tenant (scan domain QR), then fetch entitlements from your API after successful
|
||||||
|
purchase webhook.
|
||||||
|
|
||||||
|
- Add Capacitor shell for resources/js/admin.
|
||||||
|
- Configure RevenueCat projects and products (iOS/Android), wire webhooks to Laravel to credit entitlements.
|
||||||
|
- Implement Purchase UI: list offerings, purchase/restore, show current plan/credits.
|
||||||
|
- Add “Event Packs” and “Operator Pro” subscription SKUs; gate features by entitlements.
|
||||||
|
- Compliance UX: iOS (US) avoid external pay links; Android optionally implement UCB where eligible.
|
||||||
|
|
||||||
|
If you want, I can draft:
|
||||||
|
|
||||||
|
- A SKU/entitlement map (subscriptions + event packs).
|
||||||
|
- A Capacitor + RevenueCat integration skeleton (purchase + restore + webhook controller in Laravel).
|
||||||
|
- A rollout plan covering EU vs US behavior and QA checklist.
|
||||||
Reference in New Issue
Block a user