Update Rejected: No estore Purchases. Anyone else?

Discussion in 'Public Game Developers Forum' started by MelissaMarie, Jun 12, 2012.

  1. MelissaMarie

    MelissaMarie Member

    Mar 23, 2012
    22
    0
    0
    PR & Marketing at Zaah, Social Media coordinator v
    New York, NY
    #1 MelissaMarie, Jun 12, 2012
    Last edited: Jun 12, 2012
    So we (21st Street Games) submitted an update to Apple for our game Techno Kitten Adventure, including a new in-app purchase. It was rejected due to the Restore Purchases feature not being included.

    Until now, the way to restore purchases was to "buy" them again under the same iTunes account. I guess now Apple has a new, clearer option. I'm glad if this is the case, because most users think they lose their purchases when they delete their app, I've answered at least 50 customer service emails for this issue. But from what I can tell we weren't issued a warning about this integration (although I only receive submitted/approved or rejected emails.)

    Has anyone else had an app rejected today or recently based on this?

    Edit: Uuuugh, Restore** should be in the subject line.
     
  2. AnalogNest

    AnalogNest Member

    Nov 7, 2011
    5
    0
    0
    Owner
    Orange County
    Hi Melissa,
    Yes, we ran into the same issue this week... We ended up having to add a "restore purchases" button in the app. This is something Apple cracking down on lately.

    Drew
     
  3. Blackharon

    Blackharon Well-Known Member

    Mar 15, 2010
    978
    0
    16
    Game Designer for Ludia
    Canada
    Happened to me too. Any idea on how long the review process is after the rejection? (My first app being rejected out of 5)
     
  4. Uncade

    Uncade Well-Known Member

    Dec 16, 2010
    158
    0
    0
    Game Developer
    I ran into this with Blast Ball. I resubmitted it a couple of days ago, my guess is it will be the same review time of about a week.
     
  5. Rainier

    Rainier Well-Known Member

    Apr 16, 2012
    160
    0
    0
    Is this 'restore' function going to be necessary any time there's IAPs then? May I ask what the nature of the historical purchases were that needed restoring? For example, if you buy a bunch of coins in Temple Run, are they going to need a restore purchases feature?
     
  6. borgb

    borgb Member

    Aug 13, 2011
    24
    0
    0
    3D designer
    Oslo, Norway
    Same thing for me too so working on putting in a restore option as well now. For me it is a feature that you unlock. Not sure how it would be with coins and such consumables.
     
  7. Blackharon

    Blackharon Well-Known Member

    Mar 15, 2010
    978
    0
    16
    Game Designer for Ludia
    Canada
    The restore function needs to be added to an app if it has non-consumable IAP. The coins in Temple Run are consumable so the restore function doesn't apply.
     
  8. Rainier

    Rainier Well-Known Member

    Apr 16, 2012
    160
    0
    0
    Ah. Thanks Blackharon. That just saved me some potential coding time.
     
  9. Rubicon

    Rubicon Well-Known Member

    Feb 22, 2011
    1,535
    1
    0
    Lead Programmer, Chief Bottlewasher
    Isle of Wight, UK
    Just a note to say thanks, Melissa.

    We were just about to hit the buffers on this one ourselves, until I came across your post.
     
  10. PikPok

    PikPok Well-Known Member

    Nov 26, 2009
    938
    1
    0
    Wellington
    We just had an update rejected of this today, too.
     
  11. Ovogame

    Ovogame Well-Known Member

    Sep 25, 2010
    570
    0
    0
    Game Developer
    Morestel, France
    Yes, Restore for non-consumable is now mandatory. If people are wondering how it works...

    You call:
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
    to initiate a full restore.

    Everytime an item is restored, you 'll get a call to "restoreTransaction", so, you need to add this function (it is similar to completeTransaction when you do a normal purchase)

    - (void) restoreTransaction: (SKPaymentTransaction *)transaction
    {
    CStore::NumRestored++;
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
    }

    NumRestored is part of my own CStore class. I set it to zero before calling a restore. So, I know how many items have been restored.

    When all the items have been restored, you get a call to paymentQueueRestoreCompletedTransactionsFinished


    - (void)paymentQueueRestoreCompletedTransactionsFinished: (SKPaymentQueue *)queue
    {
    if (CStore::NumRestored==0)
    {
    ...
    }
    }

    I'm testing if any items have been restored. If there are none, you can display a message like:
    "It doesn’t look like you've purchased this product with this account."

    Also, you might want to create this function too for completeness:

    - (void)paymentQueue: (SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError: (NSError *)error __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0)
    {
    }

    Hope it helps :)

    JC
     
  12. smuttlegiaco

    smuttlegiaco Well-Known Member

    Aug 19, 2010
    497
    0
    16
    Game Designer
    Germany
    thanks to the starter of the thread! (and to all the other participants, too, of course) :)
     
  13. Name That

    Name That Member

    May 1, 2012
    13
    0
    0
    So if unlocking a level of some sort costs $.99, then you need to have a 'restore purchases'?
     
  14. Cool, it was way too confusing before. I'm glad apple is making this change. I know it will make customers more at ease and they won't have to go to customer support web pages just to ask if their inapps are still there.
     
  15. Ovogame

    Ovogame Well-Known Member

    Sep 25, 2010
    570
    0
    0
    Game Developer
    Morestel, France
    Yes.
     
  16. meyumedev

    meyumedev Well-Known Member

    Aug 19, 2009
    298
    0
    0
    We (Cannibal Cookout) just got rejected for NO restore button for CONSUMABLE items. I have appealed to Apple as this can't actually be implemented :(
     
  17. Blackharon

    Blackharon Well-Known Member

    Mar 15, 2010
    978
    0
    16
    Game Designer for Ludia
    Canada
    That could be incorrect labeling of the IAP in iTunes connect. Be sure it's truly consumable.
     
  18. meyumedev

    meyumedev Well-Known Member

    Aug 19, 2009
    298
    0
    0
    They are all consumable and have been for the last 4 updates!
     
  19. meyumedev

    meyumedev Well-Known Member

    Aug 19, 2009
    298
    0
    0
    Just an update ... Apple finally went back and approved the update without requiring me to make any changes, so I'm guessing a reviewer got confused.
     
  20. MelissaMarie

    MelissaMarie Member

    Mar 23, 2012
    22
    0
    0
    PR & Marketing at Zaah, Social Media coordinator v
    New York, NY
    [​IMG]

    Seriously tho, glad to help. Our lead programer for tka is on vacation for a month so we're beat on this update until he comes back; if we can save some frustration for other indies, well, at least something came out of it.
     

Share This Page