AuthResult
Data structure
If the game uses the FirstLogin
field to determine whether the player is a new user, when clearing data, the game needs to inform Player Network SDK to clear the relevant data.
INTLAuthResult: Inherits from INTLBaseResult, include login information.
Name | Type | Description |
---|---|---|
OpenID | string | Player Network SDK unique user ID The default value is 64-bit unsigned integer string, 32-bit string is also supported. |
Token | string | 40-byte user token generated by Player Network SDK |
TokenExpire | long | Token expiration timestamp For example, 1600844518 |
FirstLogin | int | Whether this is the first login -1: Unknown 0: No 1: Yes |
UserName | string | User defined nickname |
Gender | int | Gender 0: Undefined 1: Male 2: Female |
Birthdate | string | Returns empty, collection of player birthdate is not allowed according to compliance requirements |
PictureUrl | string | User avatar URL |
Pf | string | pf value For Midas payment |
Pfkey | string | pf key For Midas payment |
NeedRealNameAuth | bool | Whether real-name verification is required |
ChannelID | int | Channel ID |
Channel | string | Channel name For more information, see INTLChannel. |
ChannelInfo | string | Third-party channel login information JSON data, each Channel has its own value |
BindList | string | Linking information JSON data in array type |
LegalDocumentsAcceptedVersion | string | The accepted version of legal documents |
DeleteAccountStatus | int | Account deletion status For more information, see DeleteAccountStatus. |
DeleteAccountInfo | string | Reach out to the Player Network representative if DeleteAccountInfo is requiredDelete account information, JSON data. For more information, see DeleteAccountInfo. |
TransferCode | string | Transfer code |
TransferCodeExpireTime | long | Expiration time for transfer code |
DeleteLIAccountStatus | int | LEVEL INFINITE PASS account deletion status For more information, see DeleteLIAccountStatus. |
string | Email address |
The ExtraJson in INTLAuthResult
contains the JSON strings for the Protocol version and Compliance result of the player queried from the backend.
Protocol version
The template string for the protocol version is:
"need_notify_rsp": {
"has_bind_li": true,
"is_receive_email": 1,
"is_receive_email_in_night": 0,
"user_agreed_game_dma": "",
"user_agreed_game_pp": "36",
"user_agreed_game_tos": "36",
"user_agreed_li_dt": "",
"user_agreed_li_pp": "1",
"user_agreed_li_tos": "",
"need_notify": false
}
Parameter | Type | Description |
---|---|---|
user_agreed_game_tos | string | Version of the Terms of Service the player agreed to, pass null if player does not agree |
user_agreed_game_pp | string | Version of the Privacy Policy the player agreed to, pass null if player does not agree |
user_agreed_li_pp | string | Version of the LEVEL INFINITE PASS Privacy Policy the player agreed to, pass null if player does not agree |
user_agreed_li_dt | string | Version of the Data Transfer agreement the player agreed to, pass null if player does not agree |
user_agreed_li_tos | string | Version of the LEVEL INFINITE PASS Terms of Service the player agreed to, pass null if player does not agree |
is_receive_email | int | Whether to receive marketing emails |
is_receive_email_in_night | int | Whether to receive marketing emails (South Korea) |
need_notify | bool | Whether LI PASS agreements has been upgraded |
has_bind_li | bool | Whether account is linked to LI PASS |
Compliance result
Template string:
"get_status_rsp": {
"adult_age": 18,
"adult_age_map": "{\"1\":18,\"10\":18,\"11\":18,\"2\":18,\"3\":14,\"4\":14,\"5\":18,\"6\":18,\"7\":18,\"8\":18,\"9\":18}",
"adult_check_status": 1,
"adult_check_status_expiration": "0",
"adult_status_map": {},
"certificate_type": 0,
"email": "",
"eu_user_agree_status": 0,
"game_grade": 0,
"game_grade_map": "{\"1\":14,\"2\":14,\"5\":14}",
"is_dma": false,
"is_eea": false,
"is_need_li_cert": false,
"msg": "success",
"need_parent_control": 0,
"need_realname_auth": 0,
"parent_certificate_status": 0,
"parent_certificate_status_expiration": "0",
"parent_control_map": {},
"qr_code_ret": 0,
"realname_auth_status": 0,
"region": "344",
"ret": 0,
"ts": "1712112893",
"uid_status":"{\"ret\":0,\"msg\":\"success\",\"adult_check_status\":1,\"adult_check_status_expiration\":0,\"parent_certificate_status\":0,\"parent_certificate_status_expiration\":0,\"eu_user_agree_status\":0,\"ts\":1736324989,\"adult_age\":13,\"game_grade\":0,\"certificate_type\":1,\"region\":\"702\",\"email\":\"\",\"adult_age_map\":{},\"game_grade_map\":{},\"realname_auth_status\":0,\"need_realname_auth\":0,\"is_eea\":false,\"is_need_li_cert\":false,\"adult_status_map\":{},\"need_parent_control\":0,\"parent_control_map\":{},\"qr_code_ret\":0,\"is_dma\":false,\"need_voice_control\":0,\"voice_control_status\":0,\"need_voice_control_ingame\":0,\"need_voice_control_parent_cert\":0,\"need_lbs_control\":0,\"lbs_control_status\":0,\"need_lbs_control_ingame\":0,\"need_lbs_control_parent_cert\":0,\"uid_status\":\"\",\"uid_status_ret\":0,\"uid_status_msg\":\"\"}",
"uid_status_msg":"success",
"uid_status_ret":0,
}
Parameter | Type | Description |
---|---|---|
ret | number | Return code 0: Request success !=0: Request failure, see msg for detailed return message |
msg | string | Return message |
adult_check_status | number | Player adult status -1: Minor 0: Not set 1: Adult |
adult_check_status_expiration | string | The next authorization time required for minors |
parent_certificate_status | number | Parental authorization status -1: Refuse 0: Not authorized 1: Authorized 10: In progress (for email authorization only) |
parent_certificate_status_expiration | string | The next authorization time after the parent refused |
eu_user_agree_status | number | Whether players in the EU region consent to transfer their user data to non-EU regions -1: Refuse 0: Not set 1: Consent |
ts | string | Current timestamp |
adult_age | number | Age of majority according to country/region Use default age if not found. |
game_grade | number | Game rating standard according to country/region Use default rating if not found |
adult_age_map | string | Age of majority according to platform for South Korea |
game_grade_map | string | Game rating standard according to platform for South Korea |
certificate_type | number | Authorization type according to country/region Use the default authorization type if not found 0: Authorization not required 1: Self-authorization 2: Credit-card authorization 3: Email authorization |
region | string | ISO 3166-1 numeric code for country or region For example 156 for China, 040 for Austria |
uid_status | string | Minor authentication status of LI PASS UID, applicable to LI PASS login or accounts linked with LI PASS |
Age requirement for South Korea
When querying for the compliance information of a player, extra steps will have to be taken if the player is from South Korea, due to requirements from the South Korean government. As such, AdultAgeMap
and GameGradeMap
will be used to determine the age requirements of the specific device platform being used.
OS | Platform |
---|---|
1 | Android |
2 | iOS |
5 | PC |
6 | Switch |
10 | PS5 |
11 | Xbox |
For example, the age of majority for PC will be AdultAgeMap[5]
, while the game rating standard for PC will be GameGradeMap[5]
.
int adultAgeInPC = AdultAgeMap[5]
int gameGradeInPC = GameGradeMap[5]
DeleteAccountStatus
Reach out to the Player Network representative to configure DeleteAccountStatus
, otherwise DeleteAccountStatus
returns -1.
Value | Description | Remark |
---|---|---|
0 | No account deletion or account deletion has been canceled | Allow player to enter the game |
1 | Account deletion cooling-off period | Stop player login, prompt player whether to cancel account deletion and enter the game |
2 | Account deletion completed | Stop player from entering the game |
3 | Account deletion in progress | Stop player from entering the game |
4 | Account deletion failed | Stop player from entering the game |
-1 | Status not returned from backend | Recommend allowing player to enter the game |
-2 | Network unstable for the account deletion status service | Recommend allowing player to enter the game |
-3 | DMCS response data format is wrong (return status or err_code fields missing in JSON) | Recommend allowing player to enter the game |
-4 | Internal error (parameter verification is incorrect or configuration verification is not equal to internal authorization logic) | Recommend allowing player to enter the game |
-10 or -11 | Internal error in the account deletion status service | Recommend allowing player to enter the game |
>= 5 | Undefined | Recommend allowing player to enter the game |
Games should review the consequences of allowing players to enter the game when the return value is negative, and if the game data may be impacted.
Stopping players from entering the game while the return value is negative may affect other players, and is therefore not recommended as an essential step in account deletion.
DeleteAccountInfo
JSON data:
{
"ret": 0, // int, return code, 0 indicates normal
"err_code": -10, // int, error code for INTL, games no need to pay attention
"msg": "", // error message, empty when the request is successful
"status": 0, // int, 0: no record or account deletion is cancelled; 1: cooling-off period; 2: account deleted successfully; 3: deleting account; 4: account deletion failed
"created_at": 12345678, // int64, timestamp when the account deletion request is created (when status is 0, timestamp is 0)
"target_destroy_at": 12345678, // timestamp to execute the account deletion (when status is 0, timestamp is 0)
"destroyed_at": 12345679 // int64, timestamp when the account is actually deleted (when status is not 2, timestamp is 0)
}
DeleteLIAccountStatus
Value | Description |
---|---|
-1 | Account deletion query failed or status not returned from backend |
0 | No account deletion records or deletion has been withdrawn |
1 | Account deletion requested |
2 | Account deletion succeeded |
3 | Account deletion in progress | |
4 | Failed to delete account |