In app purchase from store not acting like the simulator RRS feed

  • Question

  • I have a game on the store that is not demonstrating the same behavior for an in-app purchase as it does when I use the store simulator.

    Desired visual behavior (which again works in the simulator):

    The first level is playable in the trial version, the remaining levels require that both the game has been purchased, and the prior level has at least 1 of 3 stars completed.  There is also a graphic on the main page which is only visible if you own the trial version.

    If the user selects a locked level while in trial, a “dialog” pops up telling them this is a trail version, and allows them to do an in-app purchase if they wish.

    When the user performs an in-app purchase, the “this is the trial version” graphic is hidden, and if the user has a star in level one, then the level 2 lock visual is removed.

    The problem is that when I actually downloaded the trial game from the store it does not work like it does in the simulator.  If I download the trial version and play it to get the first star, and then purchase the full app, here is what happens:

    1. The trial graphic does not disappear.
    2. The lock image does not disappear on level 2 as it should.
    3. Fortunately, if the user selects level 2 it actually does play (which indicates I did get the LicenseChanged event.)
    4. If the game is closed, when it is restarted all the visuals are correctly displayed for now on.

    About the code:

    The game is a xaml/dx hybrid using a swapchainbackground buffer.  The main page has a bound viewmodel (MainVM), which has an “IsTrial” property.  The MainVM has added a handler for the Store’s LicenseChanged event.

    When the LicenseChanged event occurs, the MainVM::IsTrial property is updated.  The trial graphic’s Visibility is bound to MainVM::IsTrial via a Boolean converter.  Also during the event handler, the viewmodel for each level (held in a grid) has its visual lock status updated if appropriate (again, based on the state of MainVM::IsTrial).

    All of this raises two questions if I may:

    Question 1: I know that MainVM::IsTrial must be updating in the LicenseChanged event handler, because level 2 starts when selected instead of telling the user the game is a trial.  What could cause the trial image visibility (which is bound to MainVM::IsTrial directly) to work in the simulator but not in the real store?

    Question 2: How the heck can I test this after submitting a fix?  I am a sole developer, and have two accounts.  I have purchased the app in both.

    Sunday, January 27, 2013 7:09 PM