DMM GAMES 연동 가이드¶
앱에 DMM GAMES를 연동하려면 사전 계약을 체결해야 합니다. 계약 체결 후 아래 가이드를 참고하여 구현해 주세요. DMM GAMES는 PC 환경에서 스토어 출시를 위한 인증 및 결제를 지원하며, 모바일 환경에서는 IdP 인증 수단 연동만 지원합니다.
사전 준비¶
1. DMM ClientGame Developer Site에서 발급된 키값을 확인¶
- PC: App ID(アプリID), Consumer Key(コンシューマーキー), Consumer Secret(コンシューマーシークレット) - ゲーム管理 > ゲーム情報 > 基本情報 확인
2. App ID 준비¶
- 앱센터 > App ID 관리 > [새 App ID]에서 OS: Windows, 스토어: DMM GAMES를 선택하여 App ID를 생성합니다
- App ID 예시: com.[회사명].[프로젝트명].windows.dmm
3. 인증 설정¶
- 서비스 간 인증 보안 강화를 위해 하이브 콘솔 > 앱센터 > 보안 키 설정에서 보안 키 를 반드시 발급받아야 합니다.
- 인증 설정을 위해 스토어 키 등록 및 IdP 노출설정을 인증 > 로그인 설정에서 진행합니다.
4. 결제 설정¶
- 결제 설정을 위해 스토어 키 등록을 빌링 > 결제 설정 > 스토어 설정에서 진행합니다.
5. iOS, Android 에서 DMM GAMES IdP 인증을 사용할 경우¶
-
DMM 모바일 Developer Site에서 발급된 키값을 확인
- 모바일: Secret Key, Client ID, Client Secret - DMM 콘솔의 게시판에 App Redirect URL을 담당자에게 제출하여 발급
-
hive_config.xml에 키 설정
- 다음 예시를 참고해 hive_config.xml 파일
providers태그에 값을 입력합니다. Sandbox, 상용(Service) 예시 중 사용 환경의developmentMode에 맞는 <properties> 블록 하나만 적용하세요.
- 다음 예시를 참고해 hive_config.xml 파일
<!-- 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일 때 |
| secretKey | secret key, setConfigurations로도 설정 가능 | service일 때 |
| clientId | client id, setConfigurations로도 설정 가능 | service일 때 |
| clientSecret | client secret, setConfigurations로도 설정 가능 | service일 때 |
| redirectUri | 앱에 설정된 redirect url | 항상 |
Note
설정 우선순위: setConfigurations API > hive_config.xml
secretKey, clientId, clientSecret 세 값은 hive_config.xml과 setConfigurations API 양쪽을 모두 지원하나, 후자 사용을 권장합니다. 둘 다 세팅할 경우 setConfigurations로 세팅한 값이 우선됩니다.
setConfigurations API에 관하여는 기밀성 키값 설정을 참조하세요.
- 인증 > 로그인 설정에서 DMM GAMES IdP를 노출할 iOS 또는 Android App ID를 선택 후 로그인 설정을 진행합니다.
DMM 로그인¶
DMM 인증은 사용자가 Windows에서 DMM GAME PLAYER를 통해 앱을 실행할 때 사용하는 인증 방식입니다. 런처 기반 자동 로그인으로 동작하며 명시적 로그인 UI인 IdP 선택 목록에는 노출되지 않습니다.
실행 파라미터가 없으면 앱을 실행하지 마세요
DMM GAME PLAYER를 통하지 않고 실행되어 실행 파라미터 viewer_id, onetime_token이 전달되지 않은 경우, 앱을 실행하지 말고 종료 등으로 처리하세요. 파라미터 전달 방식에 관한 자세한 내용은 DMM GAMES Developer Support의 DMM-GAMES-PLAYER > DMM GAMES 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 GAME PLAYER 런처가 전달하는 실행 파라미터
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 측 안내를 확인하세요.
