Testing subscriptions upgrade/downgrade on sandbox

Hello,

At the moment, we have one auto-renewable subscription on our live app, and we want to add two more, where the only difference is the price and the subscription time. To accomplish that, we created a "subscription group" and everything is set up on the apple side, and the app is currently reading all the packs from the store and allow the user to buy them.

Our issue is that we can't fully test the upgrade/downgrade feature when trying to buy another subscription level on sandbox (iOS 14.5). If we buy the lowest pack first, and then try to buy a superior pack, a popup should appear saying that we want to modify our current subscription plan to another one and that it will start on XX/XX/2021.

This is not the behaviour we are seeing on our app (on sandbox). When we try to buy a superior plan the app shows the normal purchase popup and it proceeds to buy the pack normally without showing the popup warning that we are changing our current plan.

This causes some concerns, as it implies that the user is buying two subscriptions. They are on the same subscription group, so it should be impossible, but still brings concerns... Did anyone experienced the same issue? Is this the normal behaviour in sandbox?
  • Hi Were you able to see the popup for upgrade with the righ the right group configuration? I am also doing testing but sandbox never sows me the popup. Its shows the popup like an initial buy. no mention of upgrade/downgrade.

  • @Phuz3r, I'm seeing the same behavior. When testing in Sandbox using a Sandbox account, upgrades seem to work correctly. When I look at the resulting transaction and subscription information I can see that the higher level subscription starts immediately and the original lower level subscription gets the flag "upgraded" set to true.

    Downgrades, however, don't seem to work properly. I don't get a popup confirming a purchase and the higher level subscription remains in effect.

    Both upgrades and downgrades seem to work properly, however, if I use the .StoreKit Configuration file with local Xcode testing instead of Sandbox.

    I really would like to figure out how to test my subscriptions fully in Sandbox! I need to release my app soon and don't want to do it if the subscriptions aren't working!

Add a Comment

Replies

If all you want is the same level of access (same contents) but for a different length of time, you should create subscriptions within the same group, indicating a lower numerical level to the subscription with the longest duration (it appears higher up in the web interface showing the subscriptions of a group). In reality, this change operation does not correspond to an upgrade/downgrade, but to a crossgrade.

When you create products in two different groups you are implicitly indicating that you allow the user to have simultaneous subscriptions.


You can read:

https://developer.apple.com/app-store/subscriptions/

You can join the next lines to recreate a valid URL (the system doesn't let me put external URLs) a see additional information:

https://
qonversion.io/blog/ios-subscription-upgrades-downgrades-and-service-levels/

Or this one:

https://
discourse.world/h/2019/11/14/Auto-renewable-subscription-levels-in-iOS-app

Or this:

https://www.
revenuecat.com/blog/ios-subscription-groups-explained


I have the same issue. Plus, when I upgrade to the best, most expensive plan, it doesn't recognize it. Instead it just thinks I'm subscribed to the less good plan, no matter how many times I upgrade. I "paid" the money in sandbox to upgrade. I also have them all in the same subscription group and ordered correctly. No matter how many times I change up or down to a different plan, it still messes up. Every time I click the first plan I signed up for, it chokes and says that I'm already on that plan even though I changed to all the other plans, one at a time.

I think I figured it out!

If plans have not been approved by the app store, they show up in the list of available plans in the Apple provided plan management UI. However, if you switch to one of those plans in your app using a custom UI, the system does does not communicate with Apple that you switched to the plan. I had a couple plans that were approved, and its able to upgrade/downgrade those just fine, and the changes made in my custom UI show up in the Apple provided UI. However, the plans that had not been approved did not show as being selected in the UI at Settings -> App Store -> Sandbox Account Email -> Manage. They were available there as options though and could be selected! Very strange.

There is one other issue... I don't get a "change" dialog. I just get a new purchase dialog most of the time. Will test more to see if I can figure out why.