ONE store IAP Release Notes

Relaese ONE store In-app purchase SDK V19.01

ONE store In-app purchase SDK V19.01 has been released.

The major changes are as follows:

  • Issues of conflict with security solutions that check app integrity have been resolved.

  • Loading issues that occurred during the download and installation of the global ONE store app when the domestic ONE store app is already installed have been fixed.

  • Settings to change development environment during the development stage are provided. The following two settings offer an environment for development with either domestic or global ONE store:

ONE store IAP Library SDK 19.00.02 is updated.

Main changes are as follows:

Declaration of pending intents mutability (https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability)

Pending intents mutability has been declared to respond to Android 12 within the SDK.

Apps targeting Android 12 (TargetSDK 31) must be updated to 19.00.02.

IAP Library Download (19.00.02)

Release ONE store IAP Library API V6(SDK V19)

ONE store IAP library API V6(SDK V19.00) has been released. Main changes are as follows.

You must apply ONE store IAP library API V6(SDK V19) to new in-app.

It is available to migrate the in-app applied with ONE store IAP library API V6(SDK V17) to API V6(SDK V19).

Since ONE store IAP API V4(SDK V16) has been designed to the structure totally different from the later versions, it cannot be migrated to ONE store IAP API V4(SDK V19).

Remove ONE store IAP API version

Now, you do not need to add the in-app API version in the app’s manifest.

API Version meta-data will be added to IAP SDK V19.

Acknowledge purchase

In the app using ONE store IAP library API V6(SDK V19) and above, purchase must be acknowledged within 3 days.

Unless the purchase is acknowledged within 3 days, it will be judged that the item has not been normally provided, and thereby the purchase will be cancelled.

You can acknowledge the purchase by using one of the following methods

  • If the in-app is consumable, use PurchaseClient.consumeAsync().

  • If the in-app is not consumable, use PurchaseClient.acknowledgeAsync().

As for Monthly auto-renewal product, you need to acknowledge the purchase only for the first billing.

If ONE store IAP API V6(SDK V19) has been applied, the purchase MUST be acknowledged within 3 days.

Note that if the purchase is not acknowledged within 3 days, it will be cancelled.

Obtain market identification code

For IAP library V6 and above, the market identification code is necessary to use Server to Server API.

You can obtain the market identification code through getStoreInfoAsync().

Changes in PurchaseClient API

V5 (SDK V17)

V6(SDK V19)

Connect to billing module

connect

startConnection

Disconnect with billing module

terminate

endConnection

Check support status

isBillingSupportedAsync

X

Purchase in-app

launchPurchaseFlowAsync

launchPurchaseFlow

Consume in-app

consumeAsync

consumeAsync

Acknowledge in-app purchase

X

acknowledgeAsync

Purchase history of unconsumed in-app (including monthly automatic payment)

queryPurchasesAsync

queryPurchasesAsync

In-app product details

queryProductsAsync

queryProductDetailsAsync

Change monthly automatic payment status

manageRecurringProductAsync

manageRecurringProductAsync

Update or install billing module

launchUpdateOrInstallFlow

launchUpdateOrInstallFlow

Call ONE store login

launchLoginFlowAsync

launchLoginFlowAsync

Check market identification code

X

getStoreInfoAsync

Changes in Server API

ItemsAPI listAPI URIChanges

V5 (SDK V17)

V6 (SDK V19)

Change

Issue OAuth token

/v2/oauth/token

/v6/oauth/token

Delete the status field among the response specifications.

Check normality (200) with Http response code.

Remove

Check purchased in-app product details

/v2/purchase/details/{purchaseId}/

{packageName}

N/A

Remove the ‘Check purchased in-app product details’ API for enhanced security.

Integrate with ‘Check purchased in-app product details by in-app ID’.

Change

Check purchased in-app product details by in-app ID

/v2/purchase/details-by-productid /{purchaseId}/{packageName}/{productId}

/v6/apps/{packageName}/purchases/inapp/products /{productId}/{purchaseToken}

Add the purchaseId, acknowledgeState fields to the response specifications.

Change

Check purchased Monthly auto-renewal product details

/v2/purchase/recurring-details/{purchaseId}/{packageName}

/v6/apps/{packageName}/purchases/auto/products /{productId}/{purchaseToken}

Add acknowledgeState, lastPurchaseId, lastPurchaseState to the response specifications.

Remove price, developerPayload, purchaseState from the response specifications.

Remove

Check last purchased Monthly auto-renewal product details

/v2/purchase/last-recurring-details/{purchaseId}/{packageName}

N/A

Integrate to the ‘Check purchased Monthly auto-renewal product details’ API.

Change

Cancel automatic payment

/v2/purchase/manage-payment-status/{purchaseId}/{packageName}/cancel

/v6/apps/{packageName}/purchases/auto/products /{productId}/{purchaseToken}/cancel

Change the response specifications for processing success.

Change

Cancel automatic payment cancellation

/v2/purchase/manage-payment-status/{purchaseId}/{packageName}/reactivate

/v6/apps/{packageName}/purchases/auto/products /{productId}/{purchaseToken}/reactivate

Change the response specifications for processing success.

Change

Check purchase cancellation details

/v2/purchase/voided-purchases/

{packageName}

/v6/apps/{packageName}/voided-purchases

For improving API usability, the standard for checking purchase cancellation details (startTime, endTime) is changed to the purchase cancellation time in the purchase time.

Add purchaseToken, marketCode to the response specifications.

Change

Consume purchased in-app product

/v2/purchase/consume/{purchaseId}/

{packageName}

/v6/apps/{packageName}/purchases/all/products/ {productId}/{purchaseToken}/consume

Change the response specifications for processing success.

Add

Acknowledge purchase

N/A

/v6/apps/{packageName}/purchases/all/products/ {productId}/{purchaseToken}/acknowledge

Newly add the ‘acknowledge purchase’ API.

Change PNS message specifications

  • To support currencies other than the Korean won, the data type of billing amount (price) has changed from Number to String.

  • To support currencies other than the Korean won, the currency code (priceCurrencyCode) of the billing amount has been added.

  • To support currencies other than the Korean won, the data type of the amount per payment method (amount) has changed from Number to String.

  • The purchaseToken, environment, marketCode fields have been added to the response specifications.

For the specification details, refer to ‘PNS message detailed change history’.

ONE store IAP Library API V5(SDK V17)

  • The API version needs to be specified in the 'AndroidManifest.xml' file in the developer’s application as seen below.

  • For details, refer to the ‘Set up Android Manifest file’ part of the ‘Pre-preparations for Application of ONE store In-App Purchase (IAP)’ page.

  • The improvements made in API V5 (SDK V17) are as follows.

    ItemsImprovement detailsDescriptions

    API

    Introduce the ‘Consume’ concept.

    The logic is provided to restore in the app when the item is not provided.

    Support Custom PID

    The developer can directly enter in-app ID (PID), and therefore he/she can generate and operate intuitive PIDs.

    Provide universal IAP interface

    The app that has been developed targeting other markets, can be launched on ONE store without big development efforts in coding.

    Test environment

    Provide the development/commercial test environments separately.

    Provide the same level of ONE store test environment as the developer's review environment.

    In the developer’s development environment, development/test can be performed by interworking with ONE store Sandbox. In the developer’s commercial environment, it is available to make payment in ONE store commercial environment.

    If the payment is made after having logged in with the ID, which has been registered as test ID on ONE store Developer Center, the developer can freely make the purchase cancellation.

    Items

    Developer

    Development environment

    Commercial environment

    ONE store test environment

    Sandbox

    O

    -

    Commercial environment (payment)

    -

    O

    Billing window UI

    Available to select the full/pop-up billing screens

    It is available to select the full or pop-up billing screens.

    For setting up the billing screen, refer to the ‘Set up Android Manifest file’ part of the ‘Pre-preparations for Application of ONE store In-App Purchase (IAP)’ page.

    Interworking method

    Available to select IAP SDK, AIDL

    It is available to directly interwork with OSS (ONE store service) by using AIDL as well as the existing SDK method. However, in the terminal in which OSS has not been installed, IAP fails to work normally. For OSS installation, refer to the ‘Install ONE store app’ part of the ‘Pre-preparations for Application of ONE store In-App Purchase (IAP)’ page.

    Developer Center

    Improve the function of crawling other markets’ app product information.

    The app that has already been registered on other markets can be easily registered on ONE store.

    Provide the function of importing other markets’ in-app product information.

    Authentication Center

    OAuth 발급/인증/관리

    Data security has been strengthened when the developer’s service is interworking with ONE store IAP server

Last updated