## Summary - The Capacitor shell buys through StoreKit (iOS 15) and Play Billing instead of RevenueCat. - After the store sheet succeeds, the app POSTs the signed transaction or Play purchase token to `/monetization/store/confirm/`. - Restore reads current store entitlements and confirms each one. Web checkout stays on Stripe. - The store account token from `GET /monetization/subscription/` is sent as `appAccountToken` / `obfuscatedAccountId`. Depends on the `chat_backend` PR for issue #78 (`feat/78-native-store-purchases`). ## Test plan - [x] `storeBilling`, `revenueCat`, `finance`, and `BillingSection` unit tests - [ ] iOS sandbox purchase and restore against a backend with `APPLE_IAP_BUNDLE_ID` set - [ ] Play license-test purchase and restore against a backend with `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON` set - [ ] Web billing still opens Stripe Checkout Reviewed-on: #122
19 lines
862 B
Groovy
19 lines
862 B
Groovy
// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
|
|
include ':capacitor-android'
|
|
project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
|
|
|
|
include ':capacitor-app'
|
|
project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android')
|
|
|
|
include ':capacitor-keyboard'
|
|
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
|
|
|
|
include ':capacitor-preferences'
|
|
project(':capacitor-preferences').projectDir = new File('../node_modules/@capacitor/preferences/android')
|
|
|
|
include ':capacitor-status-bar'
|
|
project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacitor/status-bar/android')
|
|
|
|
include ':native-store-billing'
|
|
project(':native-store-billing').projectDir = new File('../plugins/native-store-billing/android')
|