-
-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade/Sidegrade/Downgrade subscriptions #192
Conversation
There is a little typo in the UWP implementation which exception should say that Windows store doesn't support upgrades at the moment. |
hi @jamesmontemagno , are you still working on this plugin or is it on hold? Maybe there are plans of integrating this in Essentials that I don't know of? |
No plans on Essentials integration as it is tricky with payments and isn't a good fit. I will add this to my backlog to test. Any changes you want to make @nexxuno ? |
I've fixed a string typo. It should be good now. Thanks. |
Is there no API to do this on iOS? |
Apple handles it on the backend with their "Subscription Groups," no device-side implementation necessary. |
With Apple you define subscription groups and buying another subscrption from a group automatically triggers the upgrade/sidegrade. In windows there isn't this concept at all. I give hints about this in the exception messages of the 2 platforms.
…________________________________
From: James Montemagno <notifications@github.com>
Sent: Thursday, January 17, 2019 4:16:14 AM
To: jamesmontemagno/InAppBillingPlugin
Cc: Paolo Ferrazza; Mention
Subject: Re: [jamesmontemagno/InAppBillingPlugin] Upgrade/Sidegrade/Downgrade subscriptions (#192)
Is there no API to do this on iOS?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.luolix.top%2Fjamesmontemagno%2FInAppBillingPlugin%2Fpull%2F192%23issuecomment-455027411&data=02%7C01%7C%7C387be35400914555041808d67c2a2467%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636832917768182408&sdata=b%2FOPGvn70%2FiB57WV1N6xiH5RtvEqoCc94pGEJzXEDrU%3D&reserved=0>, or mute the thread<https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.luolix.top%2Fnotifications%2Funsubscribe-auth%2FAOxBAFTv9lgolMepknlECqbGH4Dv_GkTks5vD-r-gaJpZM4YtelA&data=02%7C01%7C%7C387be35400914555041808d67c2a2467%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636832917768182408&sdata=voKeHGd0jW2KgoUMWjs6xpR16lpnMSKZEBRRL8z09WE%3D&reserved=0>.
|
@nexxuno & @jamesmontemagno - Any idea when this is likely to be released? |
I need this, when will this be made available? |
I needed it as well so I had to use the plugin's source projects in my solution instead of the Nuget package. |
Hello @nexxuno - For example on Android the 'AutoRenewing' property does get set to true after a purchase however after upgrading to a different subscription the previous in-app product that was purchased is still marked as AutoRenewing true as well? On iOS AutoRenewing is always returned as false. The PurchaseState property is another property I've been investigating and on Android this property is showing as PaymentPending for all previously purchased subscriptions and on iOS this property is showing as Purchased for all previously purchased subscriptions. Any thoughts/ideas on this? Again just looking for the simplest way to determine what subscription is the active subscription for a user after numerous subscriptions have been purchased (whether upgraded or downgraded). Thanks in advance! |
Hi @adamzucchi , and I didn't notice any problem. |
@nexxuno - Thank you for the reply! I'm excited to try this approach with our next build and release : ) |
@jamesmontemagno any plans on accepting this PR and making it available on NuGet? |
@nexxuno (cc @jamesmontemagno ) - I wanted to update you on my progress testing this PR. First thanks @nexxuno for posting this PR! Earlier in this thread I asked @nexxuno how to get the current/active subscription for a user. He suggested the following: var owned = (await inAppBilling.GetPurchasesAsync(ItemType.Subscription)).SingleOrDefault(x => x.State != PurchaseState.Refunded); The issue I ran into with this is that multiple subscriptions at a time may evaluate to true which throws an exception - especially if you have multiple subscription groups that you've made purchases from. So I am having to do some custom sorting/filtering (to narrow the subscriptions I get returned to a single subscription group) and am using FirstOrDefault instead of SingleOrDefault. My other piece of feedback is around the following use case example. Within a subscription group, if I purchase the least valuable subscription, upgrade to the next highest value subscription, and then attempt to downgrade to the previously purchased least valuable, I am experiencing some strange behavior. On iOS I get a "You're all set..." message which makes you think everything processed fine, however an exception is thrown by the plugin with error code 0 that it could not connect to the store. After some research I found the following Apple forum post: From what I understand of this, this is actually the expected behavior from Apple? It appears Apple keeps you on the higher subscription and only takes you down the the downgraded subscription once the higher subscription runs out. Can anyone think of a way the plugin could handle this scenario more elegantly? Has anyone else here experienced this? Have a solution? Thanks in advance - and please let me know if you need further descriptions of any of this. I'd be happy to hop on a screen share and try to get this fixed/tested for the plugin. Thanks! Adam |
Hi Adam, |
Any hope of getting this merged? |
Guess that's a no? |
We will need to re-base this off the new master where I use the new NuGet for google play billing. |
Is this still planned to release any time soon? |
+1 on waiting for this guy - so sad this is moving so slow :( |
Will this be added soon? |
Any thoughts on getting this merged in? Looks like there are merge conflicts. We could really use the Android subscription upgrade ability. |
It would be need to be re-based and re-implemented against latest APIs. iOS/UWP should be similar, Android I am not sure. |
Please take a moment to fill out the following:
Fixes #26 .
Changes Proposed in this pull request:
-aidl updated to latest version
-new method that makes sense only for android becuase upgrading downgrading on apple is supported natively in the store
-added new method to doc