Account Cancellation
LI PASS provides a standardized compliance solution package, allowing businesses to directly configure compliance services without needing to integrate the interfaces mentioned in this document once integrated with LI PASS.For businesses integrating LI PASS, you can contact the Player Network assistant for more details.
For businesses not using the standard LI PASS compliance solution, please refer to the contents of this document to implement the account cancellation feature.
Prerequisites
- The preconditions for account cancellation should be customized by game developers based on needs.Once conditions are met, implement the account cancellation logic within the game following the steps.
- Business must set a silent period after submitting the cancellation request according to compliance requirements for different countries or regions.During the silent period, players can reactivate their accounts and cancel the cancellation.After the silent period, the account will be deleted.
- Business must provide the official game names needed in each region for the account cancellation email template, as well as a contact email for account cancellation emails.It's suggested to use the official game name in account cancellation emails to help players identify your identity and prevent emails from being compared or marked as spam.Emails will be used to send and receive mail related to account cancellation.
Implement account cancellation logic on the game client

Integrate Account Cancellation H5 Page
Players must log in for the encryptEnable parameter in OpenUrl to be auto-passed.
Use OpenUrl to open WebView and launch the account cancellation H5 page.
URL Request GET Parameters
| Parameter | Type | Description | Notes |
|---|---|---|---|
| pageIndex | int | Enter different account cancellation pages 0: Account Cancellation 2: Revoke Privacy Agreement Consent 3: Revoke User Agreement Consent | Requir ed |
| intl_cluster | String | Base64URL encoding of INTL_URL in INTLConfig.ini within the Player Network SDK | Mandatory |
| user_name | string | Username (it is recommended to use the in-game character name, a blank string will cause the character name to appear blank in the account deletion email) | Requir ed |
| area_id | uint | Game Region ID (if non-existent, pass a blank string) | Required |
| zone_id | uint | Game Zone ID (if non-existent, pass a blank string) | Required |
| lang_type | string | Language type (RFC 4646), e.g., "en".For details, see Language Type Definition | Required |
Login State Data
When encryptEnable is passed as true in OpenUrl, the following login state data will be automatically added to the link.For more information, see OpenUrl.
| Parameters | typology | Explanation | Notes |
|---|---|---|---|
| gameid | String | Game ID allocated by Player Network | Required |
| channelid | int | Login Channel | Mandatory |
| OS | string | Terminal OS Indicator 1: Android 2: iOS 3: Web 4: Linux 5: Windows 6: Switch | Required |
| encodeparam | string | Encrypted fields: Player Network SDK OpenID, Player Network SDK token, third-party channel OpenID, etc. | Mandatory |
| seq | string | Serial Number | Optional |
Request Example
Test Environment URL: test-common-web.intlgame.com
Production Environment URL: common-web.intlgame.com
- Unity
- Unreal Engine
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);
FString delete_account_url = TEXT("test-common-web.intlgame.com");
int pageIndex = 0;
FString intl_cluster = TEXT("aHR0cHM6Ly90ZXN0LmludGxnYW1lLmNvbQ");
FString user_name = TEXT("xiaooang%20Tx");
FString lang_type = TEXT("en");
uint area_id = 1;
uint zone_id = 1;
bool encryptEnable = true;
bool isFullScreen = false;
TArray<FStringFormatArg> args;
args.Add(FStringFormatArg(delete_account_url));
args.Add(FStringFormatArg(pageIndex));
args.Add(FStringFormatArg(intl_cluster));
args.Add(FStringFormatArg(user_name));
args.Add(FStringFormatArg(lang_type));
args.Add(FStringFormatArg(area_id));
args.Add(FStringFormatArg(zone_id));
FString url = FString::Format(TEXT("https://{0}/account-deletion/index.html?pageIndex={1}&intl_cluster={2}&user_name={3}&lang_type={4}&area_id={5}&zone_id={6}"), args);
UINTLSDKAPI::OpenUrl(url, INTLWebViewOrientation.Auto, isFullScreen, encryptEnable);
Access Example
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
Test 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
H5 Callback
After the cancellation operation is executed, the page will call the Player Network SDK's JS API, executing the jsCallNative method.
-
If cancellation is successful, the callback transmits a JSON string:
{"type":"request_delete_account_success","value":"Request for game account cancellation submitted successfully"}If
typeequalsrequest_delete_account_success, it can be determined that the account cancellation request was successful;valueis a fixed string at this time. -
If cancellation fails, the callback transmits a JSON string:
{"type":"request_delete_account_fail","value":"$code|$seq_id|$message"}If
typeequalsrequest_delete_account_fail, it can be determined that the account cancellation request failed.valuecontains three pieces of information (separated by |) respectively:$codeerror code (a number),$seq_idthe request serial number (used to locate errors in the backend), and$messageerror message.
Player Information Deletion Protocol
Player Network account cancellation service informs the game to delete player information through IDIP.The game needs to implement the IDIP player game information deletion interface.Business recommendation: refer to Account Cancellation Protocol.
IDIP Account Cancellation Protocol
{gameserver_dns}:{port}/{path}?idip_sign=xxx
Request Body
| Field | Type | Explanation | Remark |
|---|---|---|---|
| head | Object | Header Information | Required |
| body | Object | Body Information | Required |
Request Body "head" Parameter
| Field | Type | Description | Remarks |
|---|---|---|---|
| iCmdid | int | Command word, value is 101 | Required |
| iSeqid | int | Message Sequence Number | Required |
| ServiceName | String | Service name ("GDOS" extended alternate field) | Required |
| dtSendTime | String | Format: YYYY-MM-DD HH:mm:ss | Required |
| iVersion | int | Version number, set by the caller | Required |
| Authenticate | String(32) | Empty field | Required |
| iSource | Uint32 | Request source value | Required |
Request Body "body" Parameter
| Field | Type | Description | Remarks |
|---|---|---|---|
| OpenId | String(64) | Player Network SDK user identification | Required |
| Serial | String | Request serial number, generated by caller | Required |
| AreaId | uint | Game District | Required |
| PlatId | uint | Platform | Required |
| ZoneId | uint | Subzone | Required |
Response Body
| Field | Type | Description | Note |
|---|---|---|---|
| head | Object | Header Information | Required |
| body | Object | Body Information | Required |
Response Body "head" Parameter
| Field | Type | Description | Note |
|---|---|---|---|
| iCmdid | int | Command word, value is 100 | Required |
| iSeqid | int | Data stream message sequence number | Required |
| ServiceName | String | Service name ("GDOS" extended alternate field) | Required |
| dtSendTime | String | Format: YYYY-MM-DD HH:mm:ss | Required |
| iVersion | int | Version number, fixed value set by caller | Required |
| Authenticate | String(32) | Empty field | Required |
| iSource | Uint32 | Request source value | Required |
Response Body "body" Parameter
| Field | Type | Description | Note |
|---|---|---|---|
| iRet | int | Game return code | Mandatory |
| ErrorInfo | string | Information returned from the game side | Mandatory |
Player recent login time protocol
Player Network account cancellation service queries player info via IDIP; (game must implement).
Recommended business reference Last Login Time Protocol.
Existing game (IDIP) query player recent login time protocol
{gameserver_dns}:{port}/{path}?idip_sign=xxx
Request Body
| Field | Type | Description | Note |
|---|---|---|---|
| head | Object | Header Information | Mandatory |
| body | Object | Body Information | Mandatory |
Request Body "head" Array Content
| Field | Type | Description | Note |
|---|---|---|---|
| iCmdid | int | Command word, value is 101 | Mandatory |
| iSeqid | int | Data stream message sequence number | Required |
| ServiceName | String | Service name ("GDOS" extended alternate field) | Required |
| dtSendTime | String | Format: YYYY-MM-DD HH:mm:ss | Required |
| iVersion | int | Version number, fixed value set by caller | Mandatory |
| Authenticate | String(32) | Empty field | Mandatory |
| iSource | Uint32 | Request source value | Mandatory |
Request Body "body" Array Content
| Field | Type | Description | Note |
|---|---|---|---|
| OpenId | String(64) | Player Network SDK user identification | Requir ed |
| AreaId | uint | Game District | Mandatory |
| PlatId | uint | Platform | Mandatory |
| ZoneId | uint | Subzone | Mandatory |
Response Body
| Field | Type | Description | Note |
|---|---|---|---|
| head | Object | Header Information | Mandatory |
| body | Object | Body Information | Mandatory |
Response Body "head" Array Content
| Field | Type | Description | Note |
|---|---|---|---|
| iCmdid | int | Command word, value is 101 | Requir ed |
| iSeqid | int | Data stream message sequence number | Requir ed |
| ServiceName | string | Service name ("GDOS" extended alternate field) | Requir ed |
| dtSendTime | String | Format: YYYY-MM-DD HH:mm:ss | Requir ed |
| iVersion | int | Version number, fixed value set by caller | Required |
| Authenticate | String(32) | Empty field | Requir ed |
| iSource | Uint32 | Request source value | Mandatory |
Response Body "body" Array Content
| Field | Type | Description | Remarks |
|---|---|---|---|
| iRet | int | Game Return Code | Mandatory |
| ErrorInfo | string | Information returned from the game side | Mandatory |
| LoginTime | uint64 | User's last login time in the game, Unix timestamp | Requir ed |