71. 리치카카오

리치카카오 연동 방법을 안내합니다.

 

 


리치카카오 연동

  • 리치카카오란?

    • 19세 이상의 게임을 개발할 시, 본인인증을 이용하여 유저의 나이를 선별할 수 있도록 제공하는 기능입니다.

    • 고스톱, 포커 류의 게임에서는 게임 내에서 구매의 제한이 법적으로 제한되어 있습니다. 리치카카오 기능을 이용하여 동일 유저가 많은 양의 게임 재화 구매할 수 없도록 구현할 수 있습니다.

연동 방식

카카오게임SDK에서는 아래 2가지 방식으로 리치카카오 연동을 지원합니다.

  1. 특정 시점에 본인 인증을 진행

  2. 카카오 로그인 과정에 본인인증을 진행

개발사에서는 게임 기획에 따라 적절한 방식을 선택할 수 있습니다. 

본인인증을 완료한 유저의 경우, 1년에 1회 카카오게임 SDK에서 자동으로 본인인증이 진행됩니다.

1. 특정 시점에서 본인인증을 진행

개발사에서 특정 시점(예> 상점 진입)에 본인인증을 진행하고 싶은 경우에 사용합니다.

로그인 시에는 기존에 이미 본인인증을 진행하였고, 미성년자인 경우에는, 로그인에 실패합니다. 그외 본인인증을 한적이 없거나, 인증이후, 365일이 경과된 유저인 경우에는 로그인이 성공합니다.

연령인증 상태

설명

로그인 성공 여부

연령인증 상태

설명

로그인 성공 여부

알수없음

아직 본인인증을 진행하지 않은 유저입니다.

로그인 성공

미성년자

본인인증을 진행했으나 미성년자였던 유저입니다.

로그인 실패

성인

본인인증을 진행 후 성인으로 분별된 유저입니다.

로그인 성공

 

본인인증을 원하는 특정 시점에서 KGKakaoProfile.requestAgeVerification (이하 본인인증API)을 호출하여 본인인증을 진행합니다.

본인인증 API를 호출하면, SDK내부적으로 아래와 그림과 같이 처리하고 있으니, 참고해주세요.

본인인증 완료 후 결과가 미성년자인 경우 UnderAgePlayer에러가 반환됩니다.

UnderAgePlayer인 경우에는, 유저에게 안내메시지 노출 후 로그아웃 시키고 앱을 종료시켜야 합니다.

해당 유저가 동일한 계정으로 다시 로그인을 진행할 경우 미성년자 정보가 있기때문에 로그인에 실패하고 자동으로 게임이 종료 됩니다.

 

2. 카카오 로그인 과정에서 본인 인증을 진행

카카오게임SDK가 카카오 로그인 과정에서 본인 인증을 처리 합니다. 이 경우, 개발사가 특별히 처리할 작업은 없습니다.

2번 방식으로 본인인증을 처리하고자 하는 경우, kakao_game_sdk_configuration.xml에  'key = "ageAuthOnLogin"' 키를 추가하고 'value = "true"' 로 지정합니다.

예시) 

<?xml version="1.0" encoding="UTF-8"?>

<configuartion-list>

    <configuration

        key="appId"

        value="YOUR_APP_ID" />

 ...

    <configuration

        key="ageAuthOnLogin"

        value="true"/>

</configuartion-list>

<?xml version="1.0" encoding="UTF-8"?>

<configuartion-list>

    <configuration

        key="appId"

        value="YOUR_APP_ID" />

 ...

    <configuration

        key="ageAuthOnLogin"

        value="true"/>

</configuartion-list>

 

SDK가 내부적으로 본인인증을 처리한 후 본인 인증 결과가 미성년자인 경우 유저에게 안내 팝업을 노출하고 게임을 종료시키고 있습니다. 미성년자가 아닐 경우에는 로그인이 성공합니다.

SDK가 내부적으로 처리하는 작업은 아래 그림을 참고해주세요.

구매 제한 구현하기

게임에서 법률상 1인 구매 제한을 구현해야하는 경우 게임에서는 필수적으로 아래 프로세스를 구현해야합니다.

다수의 아이디를 가진 유저를 한 사람으로 분별하기 위해서 CI값을 이용합니다. 본인인증을 완료한 유저는 동일인 당 1개의 CI값을 얻습니다.

위 연동방식 중 1가지를 선택하여 본인인증을 진행 후 KGLocalPlayer.getCurrentPlayer 를 호출하여 유저의 CI 값을 가져올 수 있습니다.

 

CI 란? CI값이란 유저 1명이 여러 개의 아이디를 생성했을 때, 다른 유저로 인지하지 않고 한 명의 유저임을 확인할 수 있도록 하는 값입니다.

법적으로 개인 당 결제 금액이 정해져 있을 때, 다수의 아이디로 재화를 구매할 수 없도록 CI값을 확인하여 동일한 유저임을 분별할 수 있습니다.

위와 같은 제제를 두어야 하는 게임의 경우 게임 플레이어 별 CI값을 저장하여 구매 제약을 구현해야 합니다. CI값과 구매 금액을 관리하는 DB가 필요합니다.