Use ONE store IAP in Unreal

Overview

ONE store Unreal plugin is provided to allow easy application of ONE store IAP in the Unreal development environment.

This plugin has been developed for Unreal v4.25.

Unreal Plugin Configuration

The unreal plugin consists of the followings.

assets : the global-appstores.json file used by ONE store SDK is located here. When build is made, this file will be moved to Android Assets to be included in the apk.

lib : the Adapter library helping the use of ONE store’s in-app SDK and Unreal is located here. When build is made, this file will be moved to jar lib to be included in the apk.

ONEStoreIap_UPL.xml : when build is made, it revises the GameActivity and Gradle information.

OneStoreIap.Build.cs : when Android build is made, it provides ONEStoreIap_UPL.xml for loading.

Response specifications

Product

In the Ureal SDK, product information is forwarded as follows.

This content has been defined as FOneStoreIapProductData struct in Public/OneStoreIapInterface.h

Original Product Json

Json string prior to parsing forwarded from ONE store

Product Id

In-app ID registered via Developer Center

Type

Type of in-app product ("inapp" or "auto")

Price

In-app product price information

Price Currency Code

In-app product currency information

Price Amount micros

In-app price * 1 million

Title

Product name registered via Developer Center

Purchase

In the Ureal SDK, purchase information is forwarded as follows.

This content has been defined as FOneStoreIapPurchaseData struct in Public/OneStoreIapInterface.h.

Original Purchase Data

Json string prior to parsing forwarded from ONE store

Signature Data

Signature string delivered from ONE store

Order Id

Billing ID

Package Name

Package name of purchased app

Product Id

In-app ID registered via Developer Center

Purchase Time

Time when purchase is made

Acknowledge State

Purchase acknowledgement status ( 0: Not Acknowledged, 1: Acknowledged)

Developer Payload

Order number created and managed in the business member’s interworking server

Purchase Id

Individual billing ID issued by ONE store

Purchase Token

Automatic payment ID issued by ONE store

Billing Key

BillingKey information used for automatic payment (Option)

Unreal Blueprint for OneStore IAP

ONE store Unreal plugin offers the following blueprint.

The followings provide the description on each blueprint.

One Store Disconnect

After each API is called, connection with ONE store is made naturally.

However, to terminate the connection, call-ups are required according to the life cycle of the screen.

One Store Iap Get Product Details

It requests the details of in-app products registered on ONE store.

As for Managed product, call up the specification with “inapp” in the product type. As for Monthly auto-renewal product, call up the specification with “auto”.

As for in-app calls, memory issues might happen, so it is recommended to search by 20 to 30 in-apps at a time.

Request Params

Product Type

Managed product (“inapp”) or Monthly auto-renewal product (“auto”)

Product List

List of product IDs(string) of in-apps whose details will be checked

Response Type

On Success

It is called up when in-app product details are successfully checked.

On Failure

It is called up when in-app product details fail to be checked.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

In App Product Info List

In case of success, it forwards the list of the detail data (FOneStoreIapProductData)of in-apps requested for checking.

One Store Iap Purchase Info

The purchase history of non-consumed Managed product and Monthly auto-renewal product can be checked.

Check in-app products by specifying Managed product or Monthly auto-renewal product in the product type.

Request Params

Product Type

Managed product (“inapp”) or Monthly auto-renewal product (“auto”)

Response Type

On Success

It is called up when purchase history is successfully checked.

On Failure

It is called up when purchase history fails to be checked.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

One Store Iap Purchase Data List

In case of success, it forwards the list of the detail data (FOneStoreIapPurchaseData) of in-apps requested for checking.

One Store Iap Request Purchase

It requests ONE store in-app purchases (IAP).

Request Params

Product Type

Managed product (“inapp”) or Monthly auto-renewal product (“auto”)

Product Id

In-app ID registered via Developer Center

Product Name

Product name to be exposed on the billing screen (if it is empty, the product name registered on Developer Center will be exposed)

Dev Payload

When the order number created and managed in the business member’s interworking server is entered, the same value must be input in Consume & Acknowledge.

Response Type

On Success

It is called up when billing is successfully made.

On Failure

It is called up when billing fails to be made.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

Purchase Data

In case of success, it forwards the detail data of in-apps that have been successfully purchased.

One Store Iap Consume Purchase

For consumable products that need to be re-purchased, you must proceed with ‘consume’ and item provision after successful purchase.

If these products are not processed as ‘consume’, they can never be purchased again.

For ONE store IAP SDK V19 and later, if ‘consume’ or ‘acknowledge’ is not made within 3 days, the purchase will be cancelled since it will be judged that items have not been provided.

Request Params

Purchase Data

Purchase string received when searching billing and purchase history

Dev Payload

The order number created and managed in the business member’s interworking server must be the same as dev payload entered during billing (if dev payload has not used during billing, a unique value can be entered).

Response Type

On Success

It is called up when consumption is successfully made.

On Failure

It is called up when consumption fails to be made.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

Original Purchase Data

It returns purchase data requesting ‘Consume’ as it is.

One Store Iap Acknowledge Purchase

It is a function to acknowledge the in-app which has been successfully purchased. When it comes to Managed product to be used as non-consumable product, or Monthly auto-renewal product, it must call up ‘acknowledge’.

For ONE store IAP SDK V19 and later, if ‘consume’ or ‘acknowledge’ is not made within 3 days, the purchase will be cancelled since it will be judged that items have not been provided.

Request Params

Purchase Data

Purchase string received when searching billing and purchase history.

Dev Payload

The order number created and managed in the business member’s interworking server must be the same as dev payload entered during billing (if dev payload has not used during billing, a unique value can be entered).

Response Type

On Success

It is called up when purchase acknowledgement is successfully made.

On Failure

It is called up when purchase acknowledgement fails to be made.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

Original Purchase Data

It returns purchase data requesting ‘Acknowledge’ as it is.

It uses ‘Get Purchase Data’ to confirm the change in ‘Acknowledge’ status of purchase data.

One Store Iap Manage Recurring

It changes Monthly auto-renewal product status.

There are 2 types of status: cancel or reactive. As for ‘cacel’, automatic payment will not be made on the next payment date.

Request Params

Purchase Data

Purchase string received when searching billing and purchase history.

Response Type

On Success

It is called up when Monthly auto-renewal product status successfully changes.

On Failure

It is called up when Monthly auto-renewal product status fails to change.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

Action

Status change (cancel / reactivate)

cancel : reserve the cancellation of recurring payment of Monthly auto-renewal product

reactivate: reverse the cancellation and recover the original status

Original Purchase Data

Original purchase data requesting status change.

One Store Iap Get Store Code

As for v19, it provides the API delivering market identification codes available in S2S API.

Response Type

On Success

It is called up when market identification code specifications are successfully called.

On Failure

It is called up when market identification code specifications fail to be called.

On Need Update

It is called up when ONE store billing module needs to be updated.

On Need Login

It is called up when ONE store login is needed

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

Store Code

It returns store’s unique value (ex. ONE store: MKT_ONE)

One Store Iap Request Login

It is used to process ONE store login when calling up On Need Login among the response types of the specifications above.

Response Type

On Success

It is called up when login is successful.

On Failure

It is called up when login fails.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides).

One Store Iap Request Update

It is used to process ONE update when calling up On Need Update among the response types of the specifications above.

Response Type

On Success

It is called up when update is successful.

On Failure

It is called up when update fails.

Response Params

Result Code

Success : 0 / In case of failure, it forwards error codes (as for error codes, refer to the existing guides)

One Store Purchase Verify

It reviews signature and purchase data through the license key (public key) issued by Developer Center with the API supporting the review of the purchase data.

However, as for the review of servers, it is recommended to review server items rather than to use this API.

Request Params

Public Key

License key (public key) issued by Developer Center

Original Purchase Data

Purchase data string received when calling up billing or non-consumed purchase history API

Signature data

Signature string received when calling up billing or non-consumed purchase history API

Response Params

Return Value

true: review is a success

false: review fails

Sample Case

The following example shows how to use Blueprint. It is not required to implement it as seen in the example, and you can modify the open blueprint and use it properly.

Managed product billing and consumption case

Monthly auto-renewal product billing and acknowledge case

Managed product purchase history check & consumption case

Managed product purchase history check & acknowledge case

Purchase history check & Monthly auto-renewal product status change case

Market identification code case

Login & update processing case

Last updated