feat(membership): pay through stripe checkout, adding apple pay and google pay

This commit is contained in:
ponas committed 2026-10-29 21:50:14 +01:00
1 parent ef379d3b7a
commit 5ce161225f
16 files changed
+147 -228

No files matched your search

+12 -17
View File
@@ -12,12 +12,18 @@ Remove items from this list once they are done.
`android.enableMinifyInReleaseBuilds: false` in the `expo-build-properties` plugin config in
`app.json`): smaller APK, but native Android stack traces get obfuscated unless the R8 mapping
file reaches Bugsink, which doesn't document ProGuard/R8 mapping support. Also check whether
Stripe or Sentry need ProGuard keep rules
- verify the SDK 58 upgrade on devices: `useFrameworks: "dynamic"` (needed since
`@stripe/stripe-react-native` 0.78 pulls the Stripe iOS SDK through Swift Package Manager) is
untested with Skia, Reanimated and Sentry, so do an iOS EAS build first; then a test-mode
purchase on Android and iOS including a card that requires authentication (exercises the
`handleURLCallback` deep link), an expiry reminder notification, and an error that lands in Bugsink
Sentry needs ProGuard keep rules
- verify the SDK 58 upgrade on devices: an expiry reminder notification and an error that lands
in Bugsink, on Android and an iOS EAS build
- verify the Stripe Checkout purchase flow end to end (needs galtinn deployed with
`/api/stripe/checkout-session/app/` first): a test-mode purchase on Android and iOS with `4242…`,
a card that requires 3D Secure and a cancel, checking the app lands back on the proof with the
right toast. Check Apple Pay shows inside the iOS auth session (ASWebAuthenticationSession); if
not, switch to `WebBrowser.openBrowserAsync` plus a `Linking` listener. Confirm Google Pay with
a real card in Google Wallet, and that Apple Pay, Google Pay and Link are enabled in the Stripe
Dashboard's Checkout settings
- once app versions using the Payment Sheet are gone, drop galtinn's `/api/stripe/payment-sheet/`
endpoint and its `payment_intent.succeeded` handling
- test in ios emulator? (`npm run ios`, requires macOS)
- characters in the password input field are invisible
- ask for date of birth and place of study when registering: galtinn now requires them on its web
@@ -32,14 +38,3 @@ Remove items from this list once they are done.
- try [`@expo/ui`](https://docs.expo.dev/versions/latest/sdk/ui/), production-ready as of SDK 56:
real SwiftUI / Jetpack Compose components that could back the homegrown ones in
`src/components/`
- add [Apple Pay](https://docs.stripe.com/apple-pay?platform=react-native) for membership
payments: either natively in the payment sheet (register the merchant ID
`merchant.no.neuf.chateau` + Apple Pay certificate, set `merchantIdentifier` in the
`@stripe/stripe-react-native` plugin config, pass `applePay` to `initPaymentSheet`,
new iOS build), or for free by moving payment to a Stripe-hosted Checkout page in the
browser (needs a backend Checkout Session endpoint and a return deep link)
- add [Google Pay](https://docs.stripe.com/google-pay?platform=react-native) for
membership payments: either natively in the payment sheet (`enableGooglePay: true` in
the plugin config, pass `googlePay` to `initPaymentSheet`, request production access in
the Google Pay & Wallet Console, new Android build), or for free via the same
Stripe-hosted Checkout page as for Apple Pay