Conversation
- Update openiap-versions.json (gql: 1.3.15, google: 1.3.26, apple: 1.3.13) - Regenerate Dart types with simplified input field names - Update Android native code to pass offerToken for one-time purchase discounts - Update Dart API layer to use new field names (obfuscatedAccountId, obfuscatedProfileId, purchaseToken, replacementMode) - Update builders to use simplified field names and add offerToken support - Update tests to use new field names - Add release blog post Field name changes (input fields, Android only): - obfuscatedAccountIdAndroid → obfuscatedAccountId - obfuscatedProfileIdAndroid → obfuscatedProfileId - purchaseTokenAndroid → purchaseToken - replacementModeAndroid → replacementMode - Added: offerToken (for one-time purchase discounts, Android 7.0+) Co-Authored-By: Claude Opus 4.5 <[email protected]>
|
Warning Rate limit exceeded
⌛ 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. 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughRenames Android-specific field suffixes to simplified generic names (purchaseTokenAndroid → purchaseToken, obfuscatedAccountIdAndroid → obfuscatedAccountId, etc.) and adds offerToken support for one-time purchase discounts on Android 7.0+ across native plugins, type definitions, builders, and related tests while maintaining backward compatibility. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #610 +/- ##
==========================================
- Coverage 67.28% 67.17% -0.12%
==========================================
Files 7 7
Lines 1446 1447 +1
==========================================
- Hits 973 972 -1
- Misses 473 475 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Fix example code: use `purchaseToken` and `replacementMode` instead of `purchaseTokenAndroid` and `replacementModeAndroid` in RequestSubscriptionAndroidBuilder - Update llms-full.txt: use RequestSubscriptionBuilder with correct field names for subscription upgrade example The builder classes use shorter field names without Android suffix, while the Props types use the full names with Android suffix. Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
android/src/main/kotlin/io/github/hyochan/flutter_inapp_purchase/AndroidInappPurchasePlugin.kt (1)
932-941: Fix named-argument mismatch in function call.
Lines 939-940 usepurchaseTokenAndroidandreplacementModeAndroid, which do not exist as parameters inbuildRequestPurchaseProps. The function signature definespurchaseTokenandreplacementMode. This will cause a Kotlin compilation error.Fix
val requestProps = buildRequestPurchaseProps( type = purchaseType, skus = skus, obfuscatedAccountId = obfuscatedAccountId, obfuscatedProfileId = obfuscatedProfileId, isOfferPersonalized = isOfferPersonalized, subscriptionOffers = emptyList(), - purchaseTokenAndroid = null, - replacementModeAndroid = null + purchaseToken = null, + replacementMode = null )
- Fix purchaseTokenAndroid -> purchaseToken parameter name - Fix replacementModeAndroid -> replacementMode parameter name - Add null check for verifyPurchaseWithProvider props Co-Authored-By: Claude Opus 4.5 <[email protected]>
Summary
offerTokensupport for one-time purchase discounts (Android 7.0+)Changes
Field Name Simplification
Input fields in Android-specific request props now use simplified names (without redundant
Androidsuffix):obfuscatedAccountIdAndroidobfuscatedAccountIdobfuscatedProfileIdAndroidobfuscatedProfileIdpurchaseTokenAndroidpurchaseTokenreplacementModeAndroidreplacementModeNew Feature: One-Time Purchase Discounts
Added
offerTokenfield toRequestPurchaseAndroidPropsfor applying discounts to one-time (non-subscription) purchases (Android 7.0+).Files Changed
openiap-versions.json- Updated version trackinglib/types.dart- Regenerated with new field nameslib/flutter_inapp_purchase.dart- Updated to pass new field names to nativelib/builders.dart- Updated builder classes with new field namesandroid/.../AndroidInappPurchasePlugin.kt- Updated native code to handle new fieldstest/builders_unit_test.dart- Updated teststest/flutter_inapp_purchase_channel_test.dart- Updated testsdocs/blog/2026-01-20-8.2.3.release.md- Added release blog postTest Plan
flutter analyzepassesflutter testpasses (198 tests)OpenIAP Versions
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Breaking Changes
Dependencies
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.