Skip to main content

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

  1. 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.
  2. 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.
  3. 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

Image: Account Cancellation Game Development Call Interface Timing

Integrate Account Cancellation H5 Page

caution

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
ParameterTypeDescriptionNotes
pageIndexintEnter different account cancellation pages
0: Account Cancellation
2: Revoke Privacy Agreement Consent
3: Revoke User Agreement Consent
Requir ed
intl_clusterStringBase64URL encoding of INTL_URL in INTLConfig.ini within the Player Network SDKMandatory
user_namestringUsername (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_iduintGame Region ID (if non-existent, pass a blank string)Required
zone_iduintGame Zone ID (if non-existent, pass a blank string)Required
lang_typestringLanguage type (RFC 4646), e.g., "en".For details, see Language Type DefinitionRequired
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.

ParameterstypologyExplanationNotes
gameidStringGame ID allocated by Player NetworkRequired
channelidintLogin ChannelMandatory
OSstringTerminal OS Indicator
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.
Mandatory
seqstringSerial NumberOptional
Request Example
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 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 type equals request_delete_account_success, it can be determined that the account cancellation request was successful; value is 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 type equals request_delete_account_fail, it can be determined that the account cancellation request failed. value contains three pieces of information (separated by |) respectively: $code error code (a number), $seq_id the request serial number (used to locate errors in the backend), and $message error 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

FieldTypeExplanationRemark
headObjectHeader InformationRequired
bodyObjectBody InformationRequired

Request Body "head" Parameter

FieldTypeDescriptionRemarks
iCmdidintCommand word, value is 101Required
iSeqidintMessage Sequence NumberRequired
ServiceNameStringService name ("GDOS" extended alternate field)Required
dtSendTimeStringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion number, set by the callerRequired
AuthenticateString(32)Empty fieldRequired
iSourceUint32Request source valueRequired

Request Body "body" Parameter

FieldTypeDescriptionRemarks
OpenIdString(64)Player Network SDK user identificationRequired
SerialStringRequest serial number, generated by callerRequired
AreaIduintGame DistrictRequired
PlatIduintPlatformRequired
ZoneIduintSubzoneRequired

Response Body

FieldTypeDescriptionNote
headObjectHeader InformationRequired
bodyObjectBody InformationRequired

Response Body "head" Parameter

FieldTypeDescriptionNote
iCmdidintCommand word, value is 100Required
iSeqidintData stream message sequence numberRequired
ServiceNameStringService name ("GDOS" extended alternate field)Required
dtSendTimeStringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion number, fixed value set by callerRequired
AuthenticateString(32)Empty fieldRequired
iSourceUint32Request source valueRequired

Response Body "body" Parameter

FieldTypeDescriptionNote
iRetintGame return codeMandatory
ErrorInfostringInformation returned from the game sideMandatory

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

FieldTypeDescriptionNote
headObjectHeader InformationMandatory
bodyObjectBody InformationMandatory

Request Body "head" Array Content

FieldTypeDescriptionNote
iCmdidintCommand word, value is 101Mandatory
iSeqidintData stream message sequence numberRequired
ServiceNameStringService name ("GDOS" extended alternate field)Required
dtSendTimeStringFormat: YYYY-MM-DD HH:mm:ssRequired
iVersionintVersion number, fixed value set by callerMandatory
AuthenticateString(32)Empty fieldMandatory
iSourceUint32Request source valueMandatory

Request Body "body" Array Content

FieldTypeDescriptionNote
OpenIdString(64)Player Network SDK user identificationRequir ed
AreaIduintGame DistrictMandatory
PlatIduintPlatformMandatory
ZoneIduintSubzoneMandatory

Response Body

FieldTypeDescriptionNote
headObjectHeader InformationMandatory
bodyObjectBody InformationMandatory

Response Body "head" Array Content

FieldTypeDescriptionNote
iCmdidintCommand word, value is 101Requir ed
iSeqidintData stream message sequence numberRequir ed
ServiceNamestringService name ("GDOS" extended alternate field)Requir ed
dtSendTimeStringFormat: YYYY-MM-DD HH:mm:ssRequir ed
iVersionintVersion number, fixed value set by callerRequired
AuthenticateString(32)Empty fieldRequir ed
iSourceUint32Request source valueMandatory

Response Body "body" Array Content

FieldTypeDescriptionRemarks
iRetintGame Return CodeMandatory
ErrorInfostringInformation returned from the game sideMandatory
LoginTimeuint64User's last login time in the game, Unix timestampRequir ed