- iOS: Fix the bug that
SKPaymentQueueWrapper.transactions
doesn't return all transactions. - iOS: Fix the app crashes if
InAppPurchaseConnection.instance
is called in themain()
.
- Expose SKError code to client apps.
- Post-v2 Android embedding cleanups.
- Update documentations for
InAppPurchase.completePurchase
and update README.
- Introduce
SKPaymentQueueWrapper.transactions
.
- Fix CocoaPods podspec lint warnings.
- iOS: Fix only transactions with SKPaymentTransactionStatePurchased and SKPaymentTransactionStateFailed can be finished.
- iOS: Only one pending transaction of a given product is allowed.
- Remove Android dependencies fallback.
- Require Flutter SDK 1.12.13+hotfix.5 or greater.
- Fix potential casting crash on Android v1 embedding when registering life cycle callbacks.
- Remove hard-coded legacy xcode build setting.
- Add
pedantic
to dev_dependency.
- Android: Fix a bug where the
BillingClient
is disconnected when app goes to the background. - Android: Make sure the
BillingClient
object is disconnected before the activity is destroyed. - Android: Fix minor compiler warning.
- Fix typo in CHANGELOG.
- Fix pendingCompletePurchase flag status to allow to complete purchases.
- Update te example app to avoid using deprecated api.
- Fixing usage example. No functional changes.
- Migrate the
Google Play Library
to 2.0.3.- Introduce a new class
BillingResultWrapper
which contains a detailed result of a BillingClient operation.- [Breaking Change]: All the BillingClient methods that previously return a
BillingResponse
now return aBillingResultWrapper
, including:launchBillingFlow
,startConnection
andconsumeAsync
. - [Breaking Change]: The
SkuDetailsResponseWrapper
now contains abillingResult
field in place ofbillingResponse
field. - A
billingResult
field is added to thePurchasesResultWrapper
.
- [Breaking Change]: All the BillingClient methods that previously return a
- Other Updates to the "billing_client_wrappers":
- Updates to the
PurchaseWrapper
: AdddeveloperPayload
,purchaseState
andisAcknowledged
fields. - Updates to the
SkuDetailsWrapper
: AddoriginalPrice
andoriginalPriceAmountMicros
fields. - [Breaking Change]: The
BillingClient.queryPurchaseHistory
is updated to return aPurchasesHistoryResult
, which contains a list ofPurchaseHistoryRecordWrapper
instead ofPurchaseWrapper
. APurchaseHistoryRecordWrapper
object has the same fields and values as APurchaseWrapper
object, except that aPurchaseHistoryRecordWrapper
object does not containisAutoRenewing
,orderId
andpackageName
. - Add a new
BillingClient.acknowledgePurchase
API. Starting from this version, the developer has to acknowledge any purchase on Android using this API within 3 days of purchase, or the user will be refunded. Note that if a product is "consumed" viaBillingClient.consumeAsync
, it is implicitly acknowledged. - [Breaking Change]: Added
enablePendingPurchases
inBillingClientWrapper
. The application has to call this method before callingBillingClientWrapper.startConnection
. See enablePendingPurchases for more information.
- Updates to the
- Updates to the "InAppPurchaseConnection":
- [Breaking Change]:
InAppPurchaseConnection.completePurchase
now returns aFuture<BillingResultWrapper>
instead ofFuture<void>
. A new optional parameter{String developerPayload}
has also been added to the API. On Android, this API does not throw an exception anymore, it instead acknowledge the purchase. If a purchase is not completed within 3 days on Android, the user will be refunded. - [Breaking Change]:
InAppPurchaseConnection.consumePurchase
now returns aFuture<BillingResultWrapper>
instead ofFuture<BillingResponse>
. A new optional parameter{String developerPayload}
has also been added to the API. - A new boolean field
pendingCompletePurchase
has been added to thePurchaseDetails
class. Which can be used as an indicator of whether to callInAppPurchaseConnection.completePurchase
on the purchase. - [Breaking Change]: Added
enablePendingPurchases
inInAppPurchaseConnection
. The application has to call this method when initializing theInAppPurchaseConnection
on Android. See enablePendingPurchases for more information.
- [Breaking Change]:
- Misc: Some documentation updates reflecting the
BillingClient
migration and some documentation fixes. - Refer to Google Play Billing Library Release Note for a detailed information on the update.
- Introduce a new class
- Correct a comment.
- Update version of json_annotation to ^3.0.0 and json_serializable to ^3.2.0. Resolve conflicts with other packages e.g. flutter_tools from sdk.
- Remove the deprecated
author:
field from pubspec.yaml - Migrate the plugin to the pubspec platforms manifest.
- Require Flutter SDK 1.10.0 or greater.
- Fix failing pedantic lints. None of these fixes should have any change in functionality.
- Include lifecycle dependency as a compileOnly one on Android to resolve potential version conflicts with other transitive libraries.
- Android: Use android.arch.lifecycle instead of androidx.lifecycle:lifecycle in
build.gradle
to support apps that has not been migrated to AndroidX.
- Support the v2 Android embedder.
- Update to AndroidX.
- Migrate to using the new e2e test binding.
- Add a e2e test.
- Define clang module for iOS.
- Fix iOS build warning.
- Update and migrate iOS example project.
- Android : Improved testability.
- Android: Require a non-null Activity to use the
launchBillingFlow
method.
- Remove skipped driver test.
- iOS: Add currencyCode to priceLocale on productDetails.
- Add dependency on
androidx.annotation:annotation:1.0.0
.
- Make Gradle version compatible with the Android Gradle plugin version.
- Add missing
hashCode
implementations.
- iOS: Support unsupported UserInfo value types on NSError.
- Fixed code error in
README.md
and adjusted links to work on Pub.
- Update the
README.md
so that the code samples compile with the latest Flutter/Dart version.
- Fix a google_play_connection purchase update listener regression introduced in 0.2.0+1.
- Fix an issue the type is not casted before passing to
PurchasesResultWrapper.fromJson
.
- [Breaking Change] Rename 'PurchaseError' to 'IAPError'.
- [Breaking Change] Rename 'PurchaseSource' to 'IAPSource'.
- Expanded description in
pubspec.yaml
and fixed typo inREADME.md
.
- Add missing template type parameter to
invokeMethod
calls. - Bump minimum Flutter version to 1.5.0.
- Replace invokeMethod with invokeMapMethod wherever necessary.
- Make
AdditionalSteps
(Used in the unit test) a void function.
- Some error messages from iOS are slightly changed.
ProductDetailsResponse
returned byqueryProductDetails()
now contains anPurchaseError
object that represents any error that might occurred during the request.- If the device is not connected to the internet,
queryPastPurchases()
on iOS now have the error stored in the response instead of throwing. - Clean up minor iOS warning.
- Example app shows how to handle error when calling
queryProductDetails()
andqueryProductDetails()
.
- Change the
buy
methods to returnFuture<bool>
instead ofvoid
in order to propagatelaunchBillingFlow
failures up throughgoogle_play_connection
.
- Guard against multiple onSetupFinished() calls.
- Fix bug where error only purchases updates weren't propagated correctly in
google_play_connection.dart
.
- Add more consumable handling to the example app.
Beta release.
- Ability to list products, load previous purchases, and make purchases.
- Simplified Dart API that's been unified for ease of use.
- Platform specific APIs more directly exposing
StoreKit
andBillingClient
.
Includes:
- 5ba657dc [in_app_purchase] Remove extraneous download logic (#1560)
- 01bb8796 [in_app_purchase] Minor doc updates (#1555)
- 1a4d493f [in_app_purchase] Only fetch owned purchases (#1540)
- d63c51cf [in_app_purchase] Add auto-consume errors to PurchaseDetails (#1537)
- 959da97f [in_app_purchase] Minor doc updates (#1536)
- b82ae1a6 [in_app_purchase] Rename the unified API (#1517)
- d1ad723a [in_app_purchase]remove SKDownloadWrapper and related code. (#1474)
- 7c1e8b8a [in_app_purchase]make payment unified APIs (#1421)
- 80233db6 [in_app_purchase] Add references to the original object for PurchaseDetails and ProductDetails (#1448)
- 8c180f0d [in_app_purchase]load purchase (#1380)
- e9f141bc [in_app_purchase] Iap refactor (#1381)
- d3b3d60c add driver test command to cirrus (#1342)
- aee12523 [in_app_purchase] refactoring and tests (#1322)
- 6d7b4592 [in_app_purchase] Adds Dart BillingClient APIs for loading purchases (#1286)
- 5567a9c8 [in_app_purchase]retrieve receipt (#1303)
- 3475f1b7 [in_app_purchase]restore purchases (#1299)
- a533148d [in_app_purchase] payment queue dart ios (#1249)
- 10030840 [in_app_purchase] Minor bugfixes and code cleanup (#1284)
- 347f508d [in_app_purchase] Fix CI formatting errors. (#1281)
- fad02d87 [in_app_purchase] Java API for querying purchases (#1259)
- bc501915 [In_app_purchase]SKProduct related fixes (#1252)
- f92ba3a1 IAP make payment objc (#1231)
- 62b82522 [IAP] Add the Dart API for launchBillingFlow (#1232)
- b40a4acf [IAP] Add Java call for launchBillingFlow (#1230)
- 4ff06cd1 [In_app_purchase]remove categories (#1222)
- 0e72ca56 [In_app_purchase]fix requesthandler crash (#1199)
- 81dff2be Iap getproductlist basic draft (#1169)
- db139b28 Iap iOS add payment dart wrappers (#1178)
- 2e5fbb9b Fix the param map passed down to the platform channel when calling querySkuDetails (#1194)
- 4a84bac1 Mark some packages as unpublishable (#1193)
- 51696552 Add a gradle warning to the AndroidX plugins (#1138)
- 832ab832 Iap add payment objc translators (#1172)
- d0e615cf Revert "IAP add payment translators in objc (#1126)" (#1171)
- 09a5a36e IAP add payment translators in objc (#1126)
- a100fbf9 Expose nslocale and expose currencySymbol instead of currencyCode to match android (#1162)
- 1c982efd Using json serializer for skproduct wrapper and related classes (#1147)
- 3039a261 Iap productlist ios (#1068)
- 2a1593da [IAP] Update dev deps to match flutter_driver (#1118)
- 9f87cbe5 [IAP] Update README (#1112)
- 59e84d85 Migrate independent plugins to AndroidX (#1103)
- a027ccd6 [IAP] Generate boilerplate serializers (#1090)
- 909cf1c2 [IAP] Fetch SkuDetails from Google Play (#1084)
- 6bbaa7e5 [IAP] Add missing license headers (#1083)
- 5347e877 [IAP] Clean up Dart unit tests (#1082)
- fe03e407 [IAP] Check if the payment processor is available (#1057)
- 43ee28cf Fix
Manifest versionCode not found
(#1076) - 4d702ad7 Supress
strong_mode_implicit_dynamic_method
forinvokeMethod
calls. (#1065) - 809ccde7 Doc and build script updates to the IAP plugin (#1024)
- 052b71a9 Update the IAP README (#933)
- 54f9c4e2 Upgrade Android Gradle Plugin to 3.2.1 (#916)
- ced3e99d Set all gradle-wrapper versions to 4.10.2 (#915)
- eaa1388b Reconfigure Cirrus to use clang 7 (#905)
- 9b153920 Update gradle dependencies. (#881)
- 1aef7d92 Enable lint unnecessary_new (#701)
- Added missing flutter_test package dependency.
- Added missing flutter version requirements.
- Initial release.