In-App Purchase Process

In-App Purchase Product Types

ONE store's IAP products are divided into the managed product and subscription. The purchase process for both the managed product and subscription is the same, however the consume process is added only to the managed product.

To apply ONE store's IAP process, developers are required to recognize the characteristics of in-app products and form the list of IAP products by using the types of IAP that fit the in-app products to be offered. Details of the IAP products provided by ONE store are as follows:

In-App Purchase Process

  • ONE store's IAP should go through the following process.

    • ONE store's Member Login

    • Purchase IAP Products

    • Consume the Purchased IAP Products

  • ONE store provides member-based services. If a customer's ONE store member information is not valid or his/her account information is removed, all APIs related to IAP pass a login failure error code (you can find more code information in 'Implementation of In-App Purchases(Link is needed)'. If the login failure error code is received, developers can lead the customer to log in to ONE store or can apply ONE store's member login process. The purchase of in-app products is applied in common to all types of products offered on ONE store. If the purchase of in-app products is requested, ONE store's payment screen will be shown and developers will be informed about whether customers succeeded/ failed/or canceled. For the managed product, the process to 'consume' purchased in-app products should be applied. The managed product which is not consumed yet cannot be repurchased. For details on each process, use the information below.

  • Due to the characteristics of Android terminals, the information about whether customers purchased in-app products may not be passed. To prevent a situation in which items are failed to be provided to customers like in this case, ONE store's IAP V5 provides the 'get purchase (getPurchases)' API and 'consume' features. By using the 'get purchase' feature, developers can receive a list of the in-app products which customers purchased. This in-app product list includes the managed product which is purchased but not consumed and the subscription which is currently in use. Using this list, developers are required to offer a process to provide the items which have not been given.

  • ONE store Membership Login

    • The API provided by the ONE store IAP SDK is designed to operate while ONE store's member is logged in. If developers receive a failure error code related to login when using the API provided by the ONE store SDK, they are required to select one of the following approaches and lead the customer to log in.

    • Guides for Login Request

      • Deliver to customers a message that 'you are required to execute ONE store and log in to ONE store as a member' by using dialogue, etc. This approach is to provide the customers with a simple guideline and to lead them to execute in person ONE store's applications.

    • Use getLoginIntent

      • ONE store's IAP V5 delivers an intent that can show the ONE store login screen. Developers are required to receive the login intent by using the getLoginIntent API and display the ONE store login screen through the startActivityForResult method provided by the Activity. If users complete the login, the information will be included in the data delivered to the parameter of onActivityResult, and be passed. Once the result code value is confirmed as success after review, the API of the ONE store IAP SDK can be used afterwards. The figure below shows the login process between a developer's app and ONE store.

  • Purchase IAP Products

    • To purchase in-app products, you are required to receive the in-app product purchase screen intent after confirming in-app product information and to display the in-app purchase screen through the startActivityForResult method provided by the Activity. If the purchase is completed, the purchase information will be included in the bundle object within the data which is delivered to the parameter of onActivityResult within the Activity, and be passed. Once the result code value is confirmed as success after review, proceed with the process to provide items for the in-app products. The figure below shows the process to purchase in-app products between a developer's app and ONE store.

    • After the purchase process is completed, how to implement item provision varies depending on the types of in-app products to be implemented. The following describes how each in-app product is implemented. You can find more information on how each product is implemented in 'How to Implement In-App Purchases Case by Case(Link is needed)'.

    • Managed product

      • Consumable type products

        • It is a one-time purchase product like virtual currency, including dia, provided by a developer's app. To implement the consumable type product, you are required to consume the purchased product immediately after the purchase process is completed. And items are provided after the consumption is completed.

      • Non-Consumable type products

        • It is a product, including ad-removed versions and lecture video products, which allows users to permanently own rights after a single purchase. To implement these non-consumable type products, provide items without consuming the in-app product after the purchase process is completed. ONE store manages purchase rights if the managed product is purchased only once and not consumed, and therefore this product can be used in the same way as the non-consumable product of IAP v4.

    • Subscription

      • It is a product whose payment is automatically renewed every month. Only the first purchase is made by using the IAP API. Items are provided after the first purchase process is completed and the payment will be renewed on ONE store afterwards. The subscription is the same as the ones in the existing IAP V4.

  • Consume Purchased IAP Products

    • Customers who purchased a managed product are not allowed to repurchase the same product until the purchased product is consumed. To implement consumable type products that can be purchased repeatedly, developers are required to check whether the managed product is purchased and proceed with consumption. When it comes to the consumable product which is purchased, repurchase should be requested after the product is consumed. The use of the getPurchases API provided by the ONE store IAP SDK imports the entire list of information about a user's purchases which are not consumed. And the purchased products included in the list can be consumed by using the consumePurchase API. To implement consumable type products, add this process at the initial stage of executing the application or at the time when users log in, and thereby allow reprocessing at the time when items are not actually provided for the in-app products that have already been purchased by users. The figure below shows the process to consume in-app products between a developer's app and ONE store.

  • Request Change to Subscription Status

    • Developers who offer the subscription must apply to their application a process related to the cancellation of subscription and provide a process to enable users to explicitly change the status of the subscription. When cancellation is requested for ONE store's subscription product, the product is not cancelled immediately, but its status is turned into the reservation of cancellation. When the product is in the status of the reservation of cancellation, it is available to cancel the reservation of cancellation by using the API. When it comes to the subscription product which is reserved to be cancelled, the product is passed to the purchase list within the validity period of the product. And then, on the next payment date, the monthly auto-renewal payment will not be made and the product will be removed from the purchase list. The figure below shows the process to cancel the subscription.

Last updated