This repository has been archived by the owner on Feb 22, 2023. It is now read-only.
[in_app_purchase] Add support to cross-grade a subscription on Android #2724
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change introduces basic support to replace an old subscription on
Android. On iOS passing the added parameter will have no effect.
Please note that the current implementation is basic, in that it misses
a way to contextually change the proration mode.
It also uses
setOldSku(string)
rather thansetOldSku(string, string)
which also requires the old purchaseToken to be provided.
Ref: https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setoldsku
Description
Hi, I’ve done a basic implementation to support Android subscription cross grades.
Note that this is a basic implementation in that it doesn’t support customizing the proration mode while changing the subscription. It also uses the deprecated method
setOldSku(string)
. In order to use the newsetOldSku(string, string)
method we should add another parameter to accept the "purchaseToken", which seemed too invasive with regards to the iOS counterpart which doesn’t need that information as cross-grades are managed by the storefront through the concept of groups. I'm open to suggestions to add support for custom proration mode and to use the new suggestedsetSku(string, string)
method.I preferred the deprecated method in order to keep the change as simple as possible while achieving what most apps need. On iOS passing the added
oldProduct
parameter will have no effect.Related Issues
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze
) does not report any problems on my PR.Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?