App Rejected - Intermediary Currency To Purchase Items That Function As Non-consumable

Discussion in 'Technical Discussion' started by AaroArts, Jan 17, 2017.

  1. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    I got my new game rejected today. For the following reason:

    From Apple
      • 3. 1.1 BUSINESS: PAYMENTS - IN-APP PURCHASE
    Business - 3.1.1


    Your app uses intermediary currency to purchase items that function as non-consumable products but does not include a restore mechanism.
    Users restore transactions to maintain access to content that they've already purchased.
    Next Steps
    Please modify your app to include an optional user registration feature that allows users to restore their purchases to all of their iOS devices.
    We recommend indicating that account registration is necessary to restore previously purchased in-app purchase products and providing a way for users to register later if they wish to access this content in the future.

    But my App only has 2 IAP.

    1 - Remove Ads (Non Consumable) Buy Once
    2 - Buy 49 Stars (Consumable) Buy Mulitple Times

    The "Remove Ads", remove ads.
    The "Buy 49 Stars", adds 49 stars to your In-Game currency each time you buy it, to which you can use to unlock 1 of 4 new modes.

    There are 2 restore buttons in the game. 1 in the Settings and 1 in the Game Modes Menu to restore Non-Consumable IAP.

    What do I do?
    I guess I'll have to remove the Game Modes that are unlockable from In-Game Currency?
     
    Last edited: Jan 18, 2017
  2. spicedbeangames

    spicedbeangames Miniboss Boxer

    Joined:
    Mar 31, 2016
    Messages:
    1,389
    Likes Received:
    596
    If you are buying 49 Stars - wouldnt this be a consumable item?
     
  3. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    The Remove Ads is Non-Consumable and the 49 Stars are Consumable...

    This is what I don't get.
     
  4. vallic

    vallic Boxer

    Joined:
    Dec 26, 2016
    Messages:
    36
    Likes Received:
    21
    Is Restore purchase visible on all devices? I have similar problem where my app was rejected, while on iPhone SE Restore Purchase have been below admob ad (some layout issues).
     
    Christoph likes this.
  5. spicedbeangames

    spicedbeangames Miniboss Boxer

    Joined:
    Mar 31, 2016
    Messages:
    1,389
    Likes Received:
    596
    You may have to wait until the others wake up - and can maybe add some light to what the issue is. Your original post gave me the impression you set both as non consumable but requiring a registration is new to me!

    Or, have you tested to see if it actually works? Just your BB game file to make sure theres nothing wrong there in the settings
     
  6. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    Ok I'll wait and see. I've amended the original question to be more descriptive :)

    No I've tested it on my iPhone 6+. Works fine.

    I think they don't like that a user can buy stars to unlock worlds/modes.
    And if a user uses a different device, they'd have to re-buy them stars to access the modes again because the restore buttons don't restore consumable IAP.

    But I don't know.
     
  7. trudnai

    trudnai Miniboss Boxer

    Joined:
    Sep 25, 2015
    Messages:
    1,235
    Likes Received:
    701
    The problem here is that you are unlocking modes with stars without the mechanism of being able to restore that "purchase".
    In other words customer buys "stars" and then they can use them as a currency to unlock the "modes". The "modes" are permanent purchase. So if user deletes the app and reinstalls or moves to a new iPhone they should be able to restore their permanent purchase. That mechanism is not supported by Apple itself therefore you need to implement it. BuildBox is helping you on that one.

    Options to get around:
    1. Use IAP purchase to unlock modes
    2. Instead of permanently unlock modes use your coins (stars) to enter to the mode (like you were literally put coin into a coin operated machine to use it once)
    3. Implement your very own user register and logon and purchase store and restore functions on your very own server. You need to do some software development and setup your server with https/ssl, on that server you also need your software to reliably handle these requests

    (I would suggest you to use #1)
     
  8. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    If I go with just IAPs for the modes, I don't have a use for my stars as the character can't be changed for my game format :(

    I've written restore functions before for IAPs. Apple do in fact provide classes for this.
    Unfortunately it's impossible (at least for me) to add that functionality into an xCode project exported from BB.

    Any ideas what I could use the currency for if I was to go down the IAP for modes route?
     
  9. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    @trundai How would I implement number 2, like a slot machine?
    Thanks.
     
  10. Christoph

    Christoph Miniboss Boxer

    Joined:
    Oct 4, 2015
    Messages:
    2,807
    Likes Received:
    2,309
    Make it 'endless' and use the coins to skip levels. Like Phases but with coins to skip the levels + no world selection UI. That should work I guess.
     
  11. Andy

    Andy Miniboss Boxer

    Joined:
    Sep 24, 2015
    Messages:
    2,152
    Likes Received:
    1,546
    To my knowledge, Apple has never in the past and still does not supply classes to restore consumable purchases.

    The problem is offering the option to buy in-game currency with real money, this is no longer recommended. It would require you to track and restore in-game currency yourself.

    I would recommend to use rewarded video (via HeyZap mediation) to gift coins to the player periodically, along with earning coins in the game to unlock worlds as you are now. This is essentially what we do with all of our games.

    We have explored the possibility of using iCloud (or some other mechanism) to store player data so that the ability to restore consumable items would be possible. This is something that could happen in a future release, but it is not in our near term plans.
     
    ADVERGAMES.IO, JoeWilson and trudnai like this.
  12. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    I didn't mean restore consumable purchases, I was just referring to IAP generally, and writing my own functions for Consumable purchases. I think there's even some custom controllers on Github.
    I'm unsure of android, but on iOS I usually just save an array or whatever using NSUserDefaults, but I've just realised that doesn't solve the problem should they change device... haha :rolleyes:

    Well, I've resubmitted with trundai's suggestion of 10 Stars per play because I think it's quite quirky.
    If it's rejected again for whatever reason, I'll have to look into HeyZap.
    Which is new territory for me as I've only ever used Admob o_O
     
  13. trudnai

    trudnai Miniboss Boxer

    Joined:
    Sep 25, 2015
    Messages:
    1,235
    Likes Received:
    701
    Problem with consumables is that you cannot easily tell how much have been already consumed by the time user deleted and reinstalled the app. Unless you constantly report usage to a server and store consumption over there.

    Anyways, let us know how it goes.
     
  14. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    App just got rejected again for the exact same reason...

    I made the modes 10 stars per play.
    But the IAP of 99 Stars is causing this :(

    I guess I can kiss goodbye to IAP of in-game currencies :(
     
    vallic likes this.
  15. vallic

    vallic Boxer

    Joined:
    Dec 26, 2016
    Messages:
    36
    Likes Received:
    21
    Same here, app was approved 10 days ago without any problem, but new update is not, also cited
    • 3. 1.1 BUSINESS: PAYMENTS - IN-APP PURCHASE
    Have same logic with buying coins, and with coins you can unlock mission on map
     
  16. trudnai

    trudnai Miniboss Boxer

    Joined:
    Sep 25, 2015
    Messages:
    1,235
    Likes Received:
    701
    Sorry to hear that! Yeah it seems you either need to go for IAP (purchasing the level instead of an intermediate currency), or use HeyZap as suggested by Andy -- So for those levels player need to watch a video to start.
     
  17. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    That sucks...
    Maybe they're cracking down on the quality and usability of Apps or something this year...

    I'm just going to remove my IAP all together... I suggest you do the same :(

    Thanks.
    Yes, I'm definitely going to have to go down the HeyZap route I think.
    Thanks for your help through this though :D
     
  18. vallic

    vallic Boxer

    Joined:
    Dec 26, 2016
    Messages:
    36
    Likes Received:
    21

    The best things is that I have removed on build 1.0.4, and build 1.0.5 (have only option for removing ads), and again they rejected with following. Have I missed something?


    BUILD 1.0.4

    Business - 3.1.1
    Your app uses intermediary currency to purchase items that function as non-consumable products but still does not include a restore mechanism.
    Users restore transactions to maintain access to content that they've already purchased.

    Next Steps
    Again, please modify your app to include an optional user registration feature that allows users to restore their purchases to all of their iOS devices.
    We recommend indicating that account registration is necessary to restore previously purchased in-app purchase products and providing a way for users to register later if they wish to access this content in the future.

    BUILD 1.0.5

    Business - 3.1.1
    We noticed that your app is using consumable in-app purchase products as intermediary currency for the exchange of items that function as non-renewing subscriptions.
    Users restore transactions to maintain access to content that they've already purchased.

    Next Steps
    Please delete your consumable in-app purchase product(s), then create separate non-renewing subscription in-app purchase products for each item that the user would have exchanged those consumable products for. This product type matches the usage model for the products you are ultimately selling to your users.

    NOTE: The product type cannot be changed once an in-app purchase product has been created. Therefore, you will need to create a new in-app purchase product with the correct product type.

    To create new in-app purchase(s):

    - Log in to iTunes Connect
    - Click on "My Apps"
    - Select your app
    - Click on "Features" to create new in-app purchase(s)
    - Click Save
    - Once you've completed all changes, click the "Submit for Review" button at the top of the App Version Information page.
     
  19. AaroArts

    AaroArts Miniboss Boxer

    Joined:
    Jun 22, 2016
    Messages:
    1,546
    Likes Received:
    826
    What the hell

    Well mine was rejected twice. Even after I removed the "unlock world with in-game currency" but kept the ability to buy more in-game currency as an IAP.

    So yesterday I resubmitted under a new Bundle ID and removed the IAP all together.

    Now it's 10 stars to play each extra mode.
    With no IAPs other than Remove ads.

    We'll see if that does the trick. Haha
     
  20. trudnai

    trudnai Miniboss Boxer

    Joined:
    Sep 25, 2015
    Messages:
    1,235
    Likes Received:
    701
    Maybe you should reply to them and explain what changes you have made and to give you more details about the rejection...

    EDIT: And/or remove the currency purchase option from the IAP (ItunesConnect), not from the BuildBox file?
     

Share This Page