Skip to main content

Account Deletion

LI PASS provides a standardized compliance solution that allows games to configure compliance services directly, without having to integrate the APIs mentioned in this article. For games integrated with LI PASS, reach out to the Player Network representative to learn more details.

For games not following the standard LI PASS compliance workflow, follow the instructions in this article to implement the account deletion function.

Prerequisites

  1. Establish the prerequisites for account deletion. Players should meet these conditions before they can proceed with the account deletion.
  2. Set a cooling-off period for different countries/regions based on local compliance requirements. During this period, the player can cancel their account deletion request. Once the cooling-off period ends, the account will be permanently deleted.
  3. Provide the compliance team with the official game name for each region and the designated email address for account deletion requests. The official game name helps players recognize you, reducing the chance of your emails being blocked or marked as spam. The email address is used to send and receive emails regarding account deletion.

Set up account deletion for the game app

Image: Account deletion workflow

Access the account deletion HTML5 page

caution

Players must log in so that when the encryptEnable parameter is set to true when calling the OpenUrl method, login state data can be automatically added to the URL.

Call OpenUrl to open WebView and access the account deletion HTML5 page.

URL request GET parameters
ParameterTypeDescriptionRemark
pageIndexintThe HTML5 page to access
0: The account deletion page
2: The page to withdraw consent to privacy policy
3: The page to withdraw consent to player agreement
Required
intl_clusterstringThe deployment cluster URL
The base64UR encoding of the INTL_URL which is configured in INTLConfig.ini.
Required
user_namestringUsername (Recommended to be the in-game character name. If an empty string was passed, the character name will appear to be blank in the account deletion email.) Required
area_iduintGame area ID (pass a null string when none exists)Required
zone_iduintGame zone ID (pass a null string when none exists)Required
lang_typestringLanguage Type (RFC 4646), such as "en". For details, see Language Type Definitions.Required
Login state data

When parameter encryptEnable is true in OpenUrl, the following login state data will be automatically added to the link. For more information, see OpenUrl.

ParameterTypeDescriptionRemark
gameidstringGame ID assigned by Player NetworkRequired
channelidintLogin channelRequired
osstringTerminal Operating System
1: Android
2: iOS
3: Web
4: Linux
5: Windows
6: Switch
Required
encodeparamstringEncrypted fields:
Player Network SDK OpenID, Player Network SDK token, third-party channel OpenID, etc.
Required
seqstringSerial numberOptional
Request sample
note

Test environment URL: test-common-web.intlgame.com
Production environment URL: common-web.intlgame.com

string delete_account_url = "test-common-web.intlgame.com";
int pageIndex = 0;
string intl_cluster = "aHR0cHM6Ly90ZXN0LmludGxnYW1lLmNvbQ";
string user_name = "xiaooang%20Tx";
string lang_type = "en";
uint area_id = 1;
uint zone_id = 1;
bool encryptEnable = true;
bool isFullScreen = false;
string url = $"https://{delete_account_url}/account-deletion/index.html?pageIndex={pageIndex}&intl_cluster={intl_cluster}&user_name={user_name}&lang_type={lang_type}&area_id={area_id}&zone_id={zone_id}";
INTLAPI.OpenUrl(url, INTLWebViewOrientation.Auto, isFullScreen, encryptEnable);
Access sample
Production environment:
https://common-web.intlgame.com/account-deletion/index.html?pageIndex=0&area_id=1&zone_id=1&lang_type=en&intl_cluster=aHR0cHM6Ly90ZXN0LmludGxnYW1lLmNvbQ&gameid=11&channelid=6&user_name=xiaooang%20Tx&os=1&ts=1617245219&sdk_version=1.7.00.28&seq=11-805b892eed1065983850b0d87f7fe706c862473b579703b711cae6a0d6ffefd4-1617245219-201&encodeparam=97C45AE512DDEDE0F1ED0E2E4FB3C31F8B96E406110A8D6E2F464859350DC359A8E94B25DA42454829B5336D8CD6ADDBCD13C66081391E96EC2F938A1F9F6DE429EBEF3B65D0560D10C428C21E204686D09CE0B64B2BA1E51E732FD05300249C5F118E8316B0A65D700C9AC28310A458
Testing environment:
https://test-common-web.intlgame.com/account-deletion/index.html?pageIndex=0&area_id=1&zone_id=1&lang_type=en&intl_cluster=aHR0cHM6Ly90ZXN0LmludGxnYW1lLmNvbQ&gameid=11&channelid=6&user_name=xiaooang%20Tx&os=1&ts=1617245219&sdk_version=1.7.00.28&seq=11-805b892eed1065983850b0d87f7fe706c862473b579703b711cae6a0d6ffefd4-1617245219-201&encodeparam=97C45AE512DDEDE0F1ED0E2E4FB3C31F8B96E406110A8D6E2F464859350DC359A8E94B25DA42454829B5336D8CD6ADDBCD13C66081391E96EC2F938A1F9F6DE429EBEF3B65D0560D10C428C21E204686D09CE0B64B2BA1E51E732FD05300249C5F118E8316B0A65D700C9AC28310A458

HTML5 callback

Once the account deletion request is submitted, the page will call the JS API of the Player Network SDK and execute the jsCallNative method. The cooling-off period and account deletion status are determined at this stage, based on the country or region configurations that the game has previously set.

For Apple accounts, Apple's account deletion API is called without requiring any intervention from the game.

  • If the account deletion request is successful, the callback returns a JSON string:

    {"type":"request_delete_account_success","value":"Request for game account cancellation submitted successfully"}

    When type is request_delete_account_success, the account deletion application was successful. In this case, value is a fixed string.

  • If the account deletion request fails, the callback returns a JSON string:

    {"type":"request_delete_account_fail","value":"$code|$seq_id|$message"}

    When type is request_delete_account_fail, the request failed. In this case, value has three pieces of information (separated with |): $code is the error code (a number), $seq_id is the serial number of the request (used by backend APIs to locate errors), and $message is the error message.

Player information deletion protocol

The Player Network account deletion service notifies the game to delete player information through IDIP. The game must implement a IDIP player game information deletion API. It is recommended that the game integrates with the API based on the IDIP account deletion protocol.

IDIP account deletion protocol

{gameserver_dns}:{port}/{path}?idip_sign=xxx

Request body

FieldTypeDescriptionRemark
headObjectHeader informationRequired
bodyObjectBody informationRequired

Request body "head" parameters

FieldTypeDescriptionRemark
iCmdidintCommand word, value: 101Required
iSeqidintData stream message no.Required
ServiceNamestringService name ("GDOS" extended alternate field)Required
dtSendTimestringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion no., a fixed value set by the callerRequired
AuthenticateString(32)Reserved fieldRequired
iSourceUint32Request source valueRequired

Request body "body" parameters

| Field | Type Description | Remark | | ------ | -------| ------------------------------------ | -------- | | area | uint32 | Game main server: 1-Japan; 2-Korea; 3-United Kingdom; 4-Hong Kong, Macau, Taiwan | Required | | partition | uint32 | Area | Required | | platid | uint8 | Platform: iOS (0), Android (1) | Required | | openid | string | Player Network SDK user ID | Required | | serial | string | Request number, generated by the caller | Required |

Return body

FieldTypeDescriptionRemark
headObjectHeader informationRequired
bodyObjectBody informationRequired

Return body "head" parameters

FieldTypeDescriptionRemark
iCmdidintCommand word, value: 100Required
iSeqidintData stream message no.Required
ServiceNamestringService name ("GDOS" extended alternate field)Required
dtSendTimestringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion no., a fixed value set by the callerRequired
AuthenticateString(32)Reserved fieldRequired
iSourceUint32Request source valueRequired

Return body "body" parameters

FieldTypeDescriptionRemark
retintGame return code, 0: success, other values: failedRequired
msgstringCode descriptionRequired
game_retint32Returned result, 0: success, 1: account does not exist, other values: failedRequired
game_msgstringDescription of resultRequired

Player last login time protocol

The Player Network account deletion service uses IDIP to query player information logs (must be implemented by the game).

It is recommended that the game integrates with the API based on the IDIP query last login time protocol.

IDIP query last login time protocol

{gameserver_dns}:{port}/{path}?idip_sign=xxx

Request body

FieldTypeDescriptionRemark
headObjectHeader informationRequired
bodyObjectBody informationRequired

Request body "head" array content

FieldTypeDescriptionRemark
iCmdidintCommand word, value: 101Required
iSeqidintData stream message no.Required
ServiceNamestringService name ("GDOS" extended alternate field)Required
dtSendTimestringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion no., a fixed value set by the callerRequired
AuthenticateString(32)Reserved fieldRequired
iSourceUint32Request source valueRequired

Request body "body" array content

FieldTypeDescriptionRemark
areaint32Game main server: 1-Japan; 2-Korea; 3-United Kingdom; 4-Hong Kong, Macau, TaiwanRequired
partitionuint32AreaRequired
platidint32Platform: iOS (0), Android (1)Required
openidstringPlayer Network SDK user IDRequired

Response body

FieldTypeDescriptionRemark
headObjecthead infoRequired
bodyObjectbody infoRequired

Response body "head" array content

FieldTypeDescriptionRemark
iCmdidintCommand word, value: 101Required
iSeqidintData stream message no.Required
ServiceNamestringService name ("GDOS" extended alternate field)Required
dtSendTimestringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion no., a fixed value set by the callerRequired
AuthenticateString(32)Reserved fieldRequired
iSourceUint32Request source valueRequired

Response body "body" array content

FieldTypeDescriptionRemark
retintGame return code, 0: success, other values: failedRequired
msgstringCode descriptionRequired
game_retint32Returned result, 0: success, 1: account does not exist, other values: failedRequired
game_msgstringDescription of resultRequired
login_timeuint32The time the player last logged in to the game, in Unix timestamp formatRequired