Saturday, September 7, 2013

In-App purchase for iOS (Old)

You find a game on the app store which is free and your excited to find out that it's free, So you are playing it and after you reach a certain level a pop up comes out informing you to buy the next level. OUCH! Bad thing to happen isn't it :D Those kinda games are called free minimum games. You need to purchase in order to play a further level. So as a QA you need to know everything about In-App purchase. Here you go

There are 5 kinds of purchase types
1. Consumable
2. Non-Consumable
3. Auto-renewable
4. Non-renewable
5. Free

- Consumable purchases are those which could be purchased again and again.
Ex: Coins, Cash. Energy, Lives, etc

- Non-Consumable purchases are those which are purchased once and is applicable to all the registered devices.
Ex: Levels, certain filters in photo and video apps.

- Auto-renewable purchases are those which renew subscriptions automatically.
Ex: Newspapers and Magazines, Monthly Benefits in-game (Adds gold, coins, etc)

- Non-Renewable purchase are those which has subscriptions for example 1 year without renewing for next year
Ex: Annual subscription for Magazines

- Free purchase are like auto-renewable but renews it for free.
Ex: Free contents with Newspapers

Things to remember

- Create a New apple test account to test with In-App purchases in the sandbox environment.
- Do not sign in your test account through settings, sign in through the application/game itself when accessing the purchasable content. If you log-in through setting you cannot purchase the content (**Test environment).

- Make sure that the receipt validation process is used in the application through your server in order to reduce hacks.

- If you have purchasable contents it is better to have it downloaded from a server rather than having it in package binary of the game as its easier for hackers to hack if its in binary.

- A detailed description has to be provided to the user informing about the money getting deducted automatically if its auto-renewable purchases.

- In-App purchase should be an intentional purchase and not accidentally. Apple rejects application which has purchases unintentional.

- Make sure to have a good customized dialog box informing about what content would be obtained if In-App purchase is performed to increase the chance of purchasing.

Test Cases

- Have Restore button in your game/application if it is a Non-consumable product. As user restore he shouldn't be charged with any real money again.

- Pricing information should be shown based on the region-specific currency i.e for Indian users it should be shown in Rupees and not in Dollars.
Note: Make sure the Artwork fits into the given box which shows the pricing information irrespective of region.

- Make sure a No Internet Connection alert is put up when user tries to access the In-App purchasable content.

- Restrict In-App purchase through settings / Disable In-App purchase: Alert should be put up informing about In-App purchase disabled while trying to access the content.