chore: migrate IAPKit verification host to kit.openiap.dev#102
Conversation
Update the IAPKit provider endpoint from api.iapkit.com to kit.openiap.dev. Request/response shape, bearer auth, and the /v1/purchase/verify path are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update the DEFAULT_IAPKIT_ENDPOINT from api.iapkit.com to kit.openiap.dev. Request/response shape, bearer auth, and the /v1/purchase/verify path are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Update IAPKIT_URL constant and all inline href/text references - Add IAPKit nav button (top-right) linking to kit.openiap.dev - Add "Verify Purchase with IAPKit" section to /docs/features/purchase with examples across TypeScript, Swift, Kotlin, KMP, Dart, GDScript - Add 2026-04-19 release note documenting the host migration Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update comments, env examples, and plugin JSDoc across expo-iap, react-native-iap, flutter_inapp_purchase, and kmp-iap so all "Get your API key from" pointers target kit.openiap.dev. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 32 minutes and 16 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe PR updates the IAPKit API endpoint migration from Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request migrates the IAPKit verification host from iapkit.com to kit.openiap.dev across the monorepo, updates documentation links, and introduces a new 'Verify Purchase with IAPKit' section with multi-language code examples. Feedback was provided to ensure the new IAPKit link is included in the mobile navigation for consistency. Additionally, several corrections were suggested for the code examples in the documentation to fix naming inconsistencies and property mismatches, ensuring they align with the SDK's actual type definitions and implementation details.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/docs/src/pages/docs/features/purchase.tsx`:
- Around line 693-709: Update the paragraph that mentions IAPKit and the phrase
"no server code required" (the copy referencing verifyPurchaseWithProvider and
the 'iapkit' provider) to qualify that while IAPKit handles purchase
verification for you, apps that manage user accounts or entitlements must still
perform grant decisions on a trusted server/backend; add a brief sentence after
the existing "no server code required" claim clarifying that server-side checks
or account-binding are recommended to enforce trust boundaries and prevent
client-side bypass.
In `@packages/docs/src/styles/navigation.css`:
- Around line 100-105: The CTA currently sets color: `#ffffff` over a gradient
background (background: linear-gradient(135deg, var(--primary-color),
var(--accent-color))) which fails WCAG AA; update the color property for the
IAPKit CTA selector in navigation.css from `#ffffff` to `#000000` so text uses black
(`#000000`) across the gradient endpoints, ensuring the contrast ratios meet WCAG
AA.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3420f8e1-983c-43fb-82ae-8acb29ea24b9
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (23)
libraries/expo-iap/example/.env.examplelibraries/expo-iap/example/app.config.tslibraries/expo-iap/plugin/src/withIAP.tslibraries/flutter_inapp_purchase/example/env.examplelibraries/flutter_inapp_purchase/example/lib/src/constants.dartlibraries/kmp-iap/.env.examplelibraries/kmp-iap/example/.env.examplelibraries/kmp-iap/example/composeApp/src/commonMain/kotlin/dev/hyo/martie/config/AppConfig.ktlibraries/kmp-iap/example/iosApp/Configuration/Secrets.xcconfig.examplelibraries/react-native-iap/example-expo/.env.examplelibraries/react-native-iap/example-expo/app.config.tslibraries/react-native-iap/example/.env.examplelibraries/react-native-iap/plugin/src/withIAP.tspackages/apple/Sources/OpenIapModule.swiftpackages/docs/src/components/Navigation.tsxpackages/docs/src/lib/config.tspackages/docs/src/pages/docs/example.tsxpackages/docs/src/pages/docs/features/purchase.tsxpackages/docs/src/pages/docs/lifecycle/subscription.tsxpackages/docs/src/pages/docs/types/verification.tsxpackages/docs/src/pages/docs/updates/releases.tsxpackages/docs/src/styles/navigation.csspackages/google/openiap/src/main/java/dev/hyo/openiap/utils/PurchaseVerificationValidator.kt
- Navigation: mirror IAPKit link in mobile menu (gemini-code-assist)
- navigation.css: switch CTA text to #000000 for WCAG AA contrast
over gradient (coderabbitai)
- purchase.tsx IAPKit section:
- Soften "no server code required" to clarify that
accounts/entitlements should still be granted from a trusted
backend (coderabbitai)
- Swift: rename type to RequestVerifyPurchaseWithIapkitAppleProps
and use the "IAPKitAPIKey" Info.plist key that matches the
Expo plugin output (gemini-code-assist)
- Kotlin/KMP/Dart/GDScript: rename Apple/Google props types to
...AppleProps / ...GoogleProps to match
types/verification.tsx (gemini-code-assist)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
api.iapkit.comtokit.openiap.devacross native modules (Apple, Google) and all downstream libraries/docs.Authorization: Bearer <apiKey>, and/v1/purchase/verifypath are identical; no consumer code change required after picking up the new package versions./docs/features/purchase.Changes
Native modules (packages/apple, packages/google)
packages/apple/Sources/OpenIapModule.swift: IAPKit provider URL →https://kit.openiap.dev/v1/purchase/verify.packages/google/openiap/src/main/java/dev/hyo/openiap/utils/PurchaseVerificationValidator.kt:DEFAULT_IAPKIT_ENDPOINT→https://kit.openiap.dev/v1/purchase/verify.Docs (packages/docs)
IAPKIT_URLconstant →https://kit.openiap.dev; updateexample.tsx,types/verification.tsx,lifecycle/subscription.tsxlink targets.IAPKitnav button (Navigation.tsx+navigation.css) with gradient pill styling.features/purchase.tsx: new "Verify Purchase with IAPKit" section withverifyPurchaseWithProvider({ provider: 'iapkit', ... })examples for TypeScript, Swift, Kotlin, KMP, Dart, GDScript; notes endpoint and API-key flow.updates/releases.tsx: 2026-04-19 release note describing the host-only migration.Libraries (env/plugin references)
Get your API key from https://iapkit.comcomments tohttps://kit.openiap.devin:libraries/expo-iap/{example,plugin}libraries/react-native-iap/{example,example-expo,plugin}libraries/flutter_inapp_purchase/examplelibraries/kmp-iap/{,example,example/iosApp/Configuration/Secrets.xcconfig.example}bun.lock: workspace version sync picked up duringbun install.Test plan
bun run typecheck(packages/docs) passesbunx prettier --check src/**(packages/docs) passeskit.openiap.devwith a valid API key🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Documentation
New Features