Search code examples
in-app-purchase

why apple in app purchase downgrade message show upgrade


Now I am test an apple in app purchase downgrade subscribe message handle(I am downgrade from 3 months subscribe to 1 month subscribe), I receive the downgradle message like this:

if(AppleNotificationType.DID_CHANGE_RENEWAL_PREF.getValue().equals(request.getNotificationType())){
            appleNotificationEventHandler.handleDidChangeRenewalPref(request);
        }

because the downgrade action take effect right now,the product id and auto renew product id in message PENDING_RENEWAL_INFO should be the same as my expect. but actually the product id and auto renew product id not the same. From the meage I know the subscribe upgrade from one month to 3 month but receive a downgrade message.

enter image description here

why would this happen? what should I do to make it right?


Solution

  • The DID_CHANGE_RENEWAL_PREF S2S:

    • isn't specifically a "downgrade" message. It can be applied to upgrades and crossgrades too
    • doesn't mean you should apply the downgrade right away. It only informs you that the subscribed product will change on the ​given auto_renew_product_id. The timing will depend on the type of product change. In case of a downgrade, the change will not be applied until the next renewal date. In case of up-grades and cross-grades, the change will be applied right away, and you should receive a INTERACTIVE_RENEWAL S2S).

    Finally, from what I'm seing in your screenshot, your current product is "cruise" and it will renew on the "cruise_three_month". So I'm not sure you're testing the intended thing (downgrade from 3_months to 1_month).