v9.0.0
Android full rewrite
The native side has be re-implemented using the Billing Library v2. We wiped out the old code completely.
If your app follows all implementation recommendations, you shouldn't have anything to change in your application. In particular:
- Finish approved transactions with
.finish()
, optionally after receipt validation. - Be ready to handle purchase events as soon as the application starts.
Those steps were already required on iOS, they're now as well on Android.
Some explanation can be found on Android Billing Library release notes: https://developer.android.com/google/play/billing/billing_library_releases_notes#release-2_0
- Google now requires apps to acknowledge purchases (which is done by calling
finish()
). - Google Play now supports Pending Transactions, which will can be handled on a subsequent application startup (potentially on a different device).
More at the link above.
store.applicationUsername
For the same reason as above. The new API ensure applicationUsername
can be made available to the plugin whenever needed. A nice side effect is that it will now be added to all receipt validation requests (before, it was only there at purchase time).
See https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#storeapplicationusername for details.
subscription groups
product.group
now contains the name of the group a subscription product is a member of (default to "default"
).
Only 1 product in a subscription group can be owned. On Android, purchasing a new subscription in the same group will replace the existing active one (if any).
store.developerPayload
developerPayload
used to be set at purchase time (as additional data, but this won't work anymore with the new Android Billing Library (with Pending Transactions), thus the introduction of this new API.
See https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#storedeveloperpayload for details.
store.developerName
An optional string of developer profile name. This value can be used for payment risk evaluation (Android only).
See https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#storedevelopername
General
cordova-plugin-purchase
is now the official name for the plugin- Fix: Typescript definitions