Skip to main content

AuthResult

Data structure

caution

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.

NameTypeDescription
OpenIDstringPlayer Network SDK unique user ID
The default value is 64-bit unsigned integer string, 32-bit string is also supported.
Tokenstring40-byte user token generated by Player Network SDK
TokenExpirelongToken expiration timestamp
For example, 1600844518
FirstLoginintWhether this is the first login
-1: Unknown
0: No
1: Yes
UserNamestringUser defined nickname
GenderintGender
0: Undefined
1: Male
2: Female
BirthdatestringBirth date
for example, 1987-02-23
PictureUrlstringUser avatar URL
Pfstringpf value
For Midas payment
Pfkeystringpf key
For Midas payment
NeedRealNameAuthboolWhether real-name verification is required
ChannelIDintChannel ID
ChannelstringChannel name
For more information, see INTLChannel.
ChannelInfostringThird-party channel login information
JSON data, each Channel has its own value
BindListstringLinking information
JSON data in array type
LegalDocumentsAcceptedVersionstringThe accepted version of legal documents
DeleteAccountStatusintAccount deletion status
For more information, see DeleteAccountStatus.
DeleteAccountInfostringReach out to the Player Network representative if DeleteAccountInfo is required
Delete account information, JSON data.
For more information, see DeleteAccountInfo.
TransferCodestringTransfer code
TransferCodeExpireTimelongExpiration time for transfer code
DeleteLIAccountStatusintLEVEL INFINITE PASS account deletion status
For more information, see DeleteLIAccountStatus.
EmailstringEmail 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
}
ParameterTypeDescription
user_agreed_game_tosstringVersion of the Terms of Service the player agreed to, pass null if player does not agree
user_agreed_game_ppstringVersion of the Privacy Policy the player agreed to, pass null if player does not agree
user_agreed_li_ppstringVersion of the LEVEL INFINITE PASS Privacy Policy the player agreed to, pass null if player does not agree
user_agreed_li_dtstringVersion of the Data Transfer agreement the player agreed to, pass null if player does not agree
user_agreed_li_tosstringVersion of the LEVEL INFINITE PASS Terms of Service the player agreed to, pass null if player does not agree
is_receive_emailintWhether to receive marketing emails
is_receive_email_in_nightintWhether to receive marketing emails (South Korea)
need_notifyboolWhether LI PASS agreements has been upgraded
has_bind_liboolWhether account has linked to LI PASS

Compliance result

The template string for minor authentication status is:

"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"
}
ParameterTypeDescription
retnumberReturn code
0: Request success, parse related returned field information.
!=0: Request failure, check msg for the detailed return message.
msgstringReturn message
adult_check_statusnumberPlayer adult status
-1: Minor
0: Not set
1: Adult
adult_check_status_expirationstringThe next authorization time required for minors
parent_certificate_statusnumberParental consent status
-1: Refuse
0: No consent provided
1: Consent
10: In progress (for email authorization only)
parent_certificate_status_expirationstringThe next authorization time after the parent refused
eu_user_agree_statusnumberWhether players in the EU region consent to transfer their user data to non-EU regions
-1: Refuse
0: Not set
1: Consent
tsstringCurrent timestamp
adult_agenumberAge of majority according to country/region
Use default age if not found.
game_gradenumberGame rating standard according to country/region
Use default rating if not found
adult_age_mapstringAge of majority according to platform for South Korea
game_grade_mapstringGame rating standard according to platform for South Korea
certificate_typenumberAuthorization 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
regionstringISO 3166-1 numeric code for country or region
For example 156 for China, 040 for Austria

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.

OSPlatform
1Android
2iOS
5PC
6Switch
10PS5
11Xbox

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

caution

Reach out to the Player Network representative to configure DeleteAccountStatus, otherwise DeleteAccountStatus returns -1.

ValueDescriptionRemark
0No account deletion or account deletion has been canceledAllow players to enter the game
1Account deletion cooling-off periodReject player login, prompt players whether to cancel account deletion and enter the game
2Account deletion completedReject player login
3Account deletion in progressReject player login
4Account deletion failedReject player login
-1The backend does not return the account deletion status.Recommend allowing players to enter the game
-2The network is unstable for the deletion status service.Recommend allowing players to enter the game
-3DMCS response data format is wrong (The return status or err_code fields are missing in JSON)Recommend allowing players to enter the game
-4Internal error (parameter verification is incorrect or configuration verification is not equal to internal authorization logic.)Recommend allowing players to enter the game
-10 or -11Internal error in the account deletion status serviceRecommend allowing players to enter the game
>= 5UndefinedRecommend allowing players to enter the game

Reasons for recommending allowing players to enter the game:

  • Rejecting player login affects all players. It is not recommended to make it the critical path for account deletion.
  • At the same time, games should review if allowing players to enter the game when the return value is negative will have other influences on game data.

DeleteAccountInfo

The JSON data is as follows:

{
"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

ValueDescription
-1Account deletion status query failed or backend didn't return the status
0No delete account records or delete request has been withdrawn
1Account deletion requested
2Account deletion succeeded
3Deleting an account|
4Failed to delete an account