DMM GAMES 연동 가이드¶
앱에 DMM GAMES를 연동하려면 사전 계약을 체결해야 합니다. 계약 체결 후 아래 가이드를 참고하여 구현하세요.
앱 실행 환경에 따른 DMM GAMES 연동 지원 범위는 아래와 같습니다.
- PC: 스토어 출시를 위한 인증 및 결제 기능을 모두 지원합니다.
- 모바일: IdP 로그인 인증 수단 연동만 지원합니다.
사전 준비¶
1. DMM Developer Site에서 자격 증명 발급 및 키 값 확인¶
- PC: DMM ClientGame Developer Site에서 발급받은 키 값 세 개를 확인
-
모바일: DMM 자격 증명 발급
- DMM GAMES 개발자 콘솔에 패키지명, 앱 정보 등 모바일 앱 정보를 먼저 등록한 뒤, 아래 자격 증명을 발급받습니다. DMM 인증은 OpenSocial 계열과 AuthSDK 계열, 두 종류의 자격 증명을 사용합니다.
구분 키 설명 OpenSocial appIdOpenSocial 앱 ID. makeRequest opensocial_app_id값이자 서명 검증에 사용OpenSocial consumerKey,consumerSecret서명용 consumer 자격 증명. 앱 등록 후 DMM 콘솔에서 확인 AuthSDK clientId,clientSecret,secretKeyOAuth2 로그인 자격 증명. 기기 측 DMM AuthSDK가 소비하며 Hive 서버로 전송되지 않음. DMM에 별도 신청 후 발급 AuthSDK redirectUriOAuth2 콜백 스킴. DMM에서 clientId에 바인딩하여 신청 시 함께 제공
2. App ID 준비¶
- 앱센터 > App ID 관리 > 새 App ID에서 OS와 스토어에 맞게 App ID를 생성합니다. PC 환경의 경우 OS는 Windows, 스토어는 DMM GAMES를 선택합니다.
- App ID 예시: com.[회사명].[프로젝트명].windows.dmm
3. 인증 설정¶
- 서비스 간 인증 보안 강화를 위해 하이브 콘솔 > 앱센터 > 보안 키 설정에서 보안 키를 반드시 발급받아야 합니다.
- 인증 설정을 위해 스토어 키 등록 및 IdP 노출 설정을 인증 > 로그인 설정에서 진행합니다.
4. 결제 설정¶
- 결제 설정을 위해 스토어 키 등록을 빌링 > 결제 설정 > 스토어 설정에서 진행합니다.
DMM 로그인 구현하기¶
PC 실행 환경 연동 (DMM GAME PLAYER 실행 환경)¶
로그인/로그아웃을 참고하여 구현합니다.
Warning
실행 파라미터가 존재하지 않으면 앱을 실행하지 마세요.
DMM GAME PLAYER를 통하지 않고 실행되어 실행 파라미터 viewer_id, onetime_token이 전달되지 않은 경우, 앱을 실행하지 말고 종료 등으로 처리하세요. 파라미터 전달 방식에 관한 자세한 내용은 DMM GAMES Developer Support의 DMM GAMES PLAYER 서비스 정책 내용을 참조하세요.
앱 실행 환경이 PC(DMM GAME PLAYER)인 경우, DMM 로그인 연동을 위해 고려해야 할 사항은 아래와 같습니다.
- DMM GAME PLAYER 런처가 전달하는 실행 파라미터 viewer_id, onetime_token을 Hive SDK가 받아 DMM 계정 로그인을 처리하며, 별도의 로그인 UI 없이 묵시적으로 로그인합니다. 따라서 앱은 DMM 실행 환경에 맞는 로그인 흐름을 별도로 구현하지 않고 DMM 계정 로그인 과정을 연결합니다.
- DMM 로그인은 묵시적 로그인 메서드 AuthV4.Helper.signIn 또는 AuthV4.signIn(ProviderType.DMM)으로 진행합니다. 로그인에 성공하면 자동 로그인 세션이 저장되어, 이후 AuthV4.signIn(ProviderType.Auto)로도 로그인할 수 있습니다. 로그인 결과 PlayerInfo의 DMM provider 정보에서 사용자 식별자 viewer_id 기반 providerUserId를 확인하세요.
- DMM GAME PLAYER를 통해 실행되어 런처 파라미터가 전달된 경우, 최초 1회 제한 없이 묵시적 로그인이 항상 DMM 계정으로 동작하며 명시적 로그인 UI인 showSignIn은 사용하지 않습니다. 일반적인 Windows 묵시적 로그인 동작은 묵시적 로그인 동작: PC를 참조하세요.
- 관리 토큰 onetime_token은 DMM 정책에 따라 90분 동안 유효합니다. Hive SDK가 내부적으로 자동 갱신하므로 별도로 구현할 필요는 없습니다. 단, 네트워크가 장시간 끊기는 등으로 갱신에 실패해 토큰이 완전히 만료되면 SDK 자체로는 복구되지 않으므로 앱을 재실행해 새 토큰을 발급받으세요. 결제 등 DMM API 호출에는 유효한 관리 토큰이 필요합니다.
- DMM GAME PLAYER로 실행하는 경우 로그아웃 메서드 signOut을 사용하지 마세요. DMM은 런처 기반 자동 로그인으로 동작하므로 IdP 선택 UI인 showSignIn도 사용하지 않습니다.
DMM 인증은 사용자가 Windows에서 DMM GAME PLAYER를 통해 앱을 실행할 때 사용하는 인증 방식입니다. 런처 기반 자동 로그인으로 동작하며 명시적 로그인 UI인 IdP 선택 목록에는 노출되지 않습니다.
모바일 실행 환경 연동¶
모바일 DMM 로그인은 Google, Apple 등 다른 IdP와 동일하게 AuthV4.signIn(ProviderType.DMM) 호출로 사용하며, DMM SDK 초기화·로그인·서명 검증 연계는 provider가 내부에서 처리합니다.
hive_config.xml에 키 설정¶
아래 예시 코드를 참고해 hive_config.xml 파일의 providers 태그에 값을 입력합니다. Sandbox, 상용(Service) 예시 중 사용 환경의 developmentMode에 맞는
<!-- Sandbox 설정 -->
<properties>
<!-- Hive SDK 공통 설정 생략 -->
<!-- Hive SDK 인증 설정: START -->
<providers>
<!-- DMM으로 로그인 (DMM) -->
<dmm appId="123456" developmentMode="sandbox" redirectUri="app-redirect-url" consumerKeySandbox="abcdefghijklmnop" consumerSecretSandbox="abcdefghijklmnopabcdefghijklmnop" />
</providers>
<!-- Hive SDK 인증 설정: END -->
</properties>
<!-- 상용(Service) 설정 -->
<properties>
<!-- Hive SDK 공통 설정 생략 -->
<!-- Hive SDK 인증 설정: START -->
<providers>
<!-- DMM으로 로그인 (DMM) -->
<dmm appId="123456" developmentMode="service" redirectUri="app-redirect-url" consumerKey="abcdefghijklmnop" consumerSecret="abcdefghijklmnopabcdefghijklmnop" />
</providers>
<!-- Hive SDK 인증 설정: END -->
</properties>
hive_config.xml 키 목록(Android, iOS)은 아래와 같습니다.
| 키 | 값 | 필요한 경우 |
|---|---|---|
| appId | 앱 식별자 | 항상 |
| developmentMode | sandbox 또는 service | 항상 |
| consumerKey | consumer key | service일 때 |
| consumerSecret | consumer secret | service일 때 |
| consumerKeySandbox | consumer key | sandbox일 때 |
| consumerSecretSandbox | consumer secret | sandbox일 때 |
| redirectUri | 앱에 설정된 redirect url | 항상 |
| adult | true 또는 false | iOS일 때 |
secretKey, clientId, clientSecret 설정과 관련해 고려해야 할 사항은 아래와 같습니다.
secretKey,clientId,clientSecret세 설정값은setConfigurations()API를 통해 설정하세요.setConfigurations()API로 설정한 정보는 런타임 메모리에만 유지되므로 앱을 실행할 때마다 호출해야 합니다.- hive_config.xml 파일에 설정된 값이 존재하더라도 런타임에
setConfigurations()API로 설정한 값이 우선 적용(덮어쓰기)됩니다. -
setConfigurations()API의 기밀성 키값 설정은 아래 예시 코드를 참조하세요.
Android DMM IdP 설정¶
Android IdP 추가를 참고해 DMM 로그인 라이브러리를 추가합니다. 이후 아래 순서로 Android DMM IdP 설정을 진행하세요.
-
redirectUri(scheme) 설정
redirect_uri는comXXX://auth와 같은 커스텀 스킴이며,clientId신청 시 함께 제출하여 DMM 인증을 받아 사용해야 합니다. 이 값은clientId에 바인딩되기 때문에 인증되지 않은 값을 사용하면 로그인 시 DMM 에러E210019 (error_redirect_uri_unavailable)가 발생합니다.build.gradle에서 redirect scheme을 주입합니다.
-
Gradle 의존성·리포지토리 설정
루트 settings.gradle의
3. 로그인/로그아웃을 참고하여 구현합니다.dependencyResolutionManagement { repositories }에 DMM Maven 리포지토리를 추가합니다. Gradle 리포지토리 선언은 전이되지 않으므로, 앱 빌드에서 선언되지 않으면 DMM SDK(link-id-sdk,AuthSDK) 해석에 실패합니다.
iOS DMM IdP 설정¶
iOS IdP 추가를 참고해 DMM 로그인 라이브러리를 추가합니다. 이후 로그인/로그아웃을 참고하여 구현합니다.
DMM 결제 구현하기¶
DMM은 사용자가 충전한 DMM 포인트로 상품을 구매하는 결제 방식입니다. 결제 요청과 복구 흐름은 IAP v4의 일반 구매 흐름을 따르지만, DMM 포인트 잔액 확인과 포인트 충전 유도 같은 DMM 전용 분기가 함께 동작합니다. 따라서 Windows DMM 환경에서도 기존 IAP v4 흐름을 유지하면서 DMM 포인트 기반 결제 조건을 함께 처리합니다.
구현 순서¶
- 빌링 > IAP v4 초기화를 참고하여 구현합니다.
- 빌링 > 상품 목록 조회와 구매를 참고하여 구현합니다.
- 영수증 확인을 참고하여 구현합니다.
- DMM 로그인 개발 시 고려 사항
- DMM 결제는 별도 결제창 UI 없이 즉시 확정됩니다. 구매 직후 영수증이 반환되지 않은 Pending 상태라면 IAPV4.restore를 호출해 영수증을 다시 확보한 뒤 검증과 지급 처리를 진행하세요. 구매 이후 영수증 검증과 상품 지급 처리의 전체 흐름은 다른 스토어와 동일합니다. 자세한 내용은 영수증 확인을 참조하세요.
- DMM 결제 API 호출에는 유효한 관리 토큰
onetime_token이 필요합니다. 토큰 수명, 자동 갱신, 만료 시 처리 등은 DMM 로그인을 참조하세요. - DMM 결제도 다중 수량 구매를 지원합니다. quantity 파라미터가 포함된 IAPV4.purchase(marketPid, iapPayload, quantity, onIAPV4PurchaseCB)를 호출해 동일 상품을 한 번에 여러 개 구매하세요.
DMM 포인트¶
DMM 포인트 잔액 조회¶
IAPV4.getBalanceInfo를 호출하면 사용자가 사용할 수 있는 DMM 포인트 잔액을 조회합니다. 구매 전에 선제적으로 잔액을 확인하거나 상점 화면에 잔액을 표시할 때 사용합니다. 콜백으로 ResultAPI와 정수형 잔액 balance를 전달받습니다. getBalanceInfo는 PC Windows 환경의 DMM 결제에서만 사용할 수 있으며, 그 외 마켓에서 호출하면 미지원 NOT_SUPPORTED 결과가 반환됩니다.
호출에 성공하면 balance에 현재 사용할 수 있는 DMM 포인트 잔액이 담기며, 호출에 실패하면 ResultAPI로 실패 원인을 확인하세요.
DMM 포인트 부족 시 충전 유도¶
구매 시 포인트 잔액이 부족하면 purchase 콜백이 IAPV4DmmInsufficientPointBalance 결과 코드를 반환합니다. 이 경우 앱에서 DMM 포인트 충전 페이지를 브라우저로 노출해 충전을 유도하세요.
DMM 포인트 충전 페이지 URL은 https://point.dmm.com/choice/pay?basket_service_type=freegame입니다.
Caution
위 충전 페이지 URL은 DMM에서 제공한 값이며 DMM 정책에 따라 변경될 수 있습니다. 최신 URL과 basket_service_type 등 파라미터 값은 DMM 측 안내를 확인하세요.
