인앱 결제를 앱에 간편하게 적용할 수 있습니다.
결제 대시보드 기능 목록:
적용
아래 중 한 가지 선택 후 앱 내에서 결제를 처리하실 수 있습니다.
SDK 결제
결제 SDK를 적용하면 인앱 구매를 원활하게 처리할 수 있습니다. 현재 기본 Android 및 Unity를 지원합니다.
장점:
- 간소화된 설정 단계를 통해 최소한의 노력으로 손쉽게 적용이 가능합니다.
- 네이티브 안드로이드와 유니티 앱에 대한 포괄적인 지원을 제공해 드립니다.
- 여러 지역에 걸쳐 다양한 결제 방법을 지원하여 글로벌한 서비스를 제공해 드립니다.
- 일회성 상품 및 정기 구독을 지원해 드립니다.
방법:
- 결제 대시보드에서:
- SDK 결제를 선택합니다.
- 아래 링크를 통해 결제 SDK 가이드를 확인해 보실 수 있습니다.
- 저장을 클릭합니다.
코드 결제 없음
SDK를 적용하거나 APK를 수정하지 않고도 인앱결제를 쉽게 결제할 수 있습니다.
장점:
- 모듈를 적용하거나 앱의 APK를 수정하지 않고도 손쉽게 사용하실 수 있습니다.
- 원활하고 유저 친화적인 결제 프로세스를 지원해 드립니다.
- 추가 코드를 작성하지 않고도 결제가 가능합니다.
- 앱 내 구매 기능의 개발, 적용 및 테스트 시간을 줄여 드립니다.
- 안전하고 신뢰할 수 있는 거래 프로세스를 보장해 드립니다.
방법:
- 결제 대시보드에서:
- 코드 결제 없음를 선택합니다.
- 필요 정보를 입력합니다.
- 가장 적합한 적용 시나리오를 위해 질문에 대한 답변을 입력합니다.
- 결제 관련 설정을 합니다.
필요 정보
중요
- 현재 No Code Payment는 구독을 지원하지 않습니다.
아래는 코드 결제 없음 선택 시 정확한 적용 시나리오를 확인하기 위한 몇 가지 질문 사항입니다.
- SafetyNet과 같은 서비스로 APK를 암호화하셨습니까?
- 앱에서 결제를 어떻게 확인합니까? (드롭다운)
결제 설정
필요 정보에서 선택한 내용에 따라 다음을 이용하실 수 있습니다.
서버 설정
필요 정보에서 서버 선택 시 아래 설정이 표시됩니다.
- 제공된 가이드에 따라 필요 사항을 변경한 후 서버를 구성했습니다를 클릭합니다.
- APK 및 인앱 상품을 선택합니다.
중요
- 제공된 가이드에 따라 코드 결제 없음에 대한 서버 측 IAP 인증을 설정해야 합니다.
APK 및 인앱 상품 선택
다음 단계는 서버 및 확인 안 함 옵션 모두에 적용됩니다.
1. APK 선택
코드 결제 없음와 함께 사용하실 APK를 선택합니다.
- Apk 선택을 클릭합니다.
다음 세 가지 방법을 사용하여 APK를 추가하라는 메시지가 표시됩니다.
- APK 업로드
APK를 업로드하실 수 있습니다. – 참조
- Zip 업로드 (APK + 에셋)
APK Zip을 업로드하실 수 있습니다 – 참조
- 앱 라이브러리
앱 라이브러리에서 이미 업로드된 앱을 선택하실 수 있습니다. – 참조
2. 상품 판매
코드 결제 없음와 함께 사용하실 상품을 추가합니다.
- 결제 > 인앱 상품 내 상품 보기/추가를 클릭합니다.
- 제출을 클릭합니다.
검토 후 코드 결제 없음를 활성화해 드립니다.
3.’코드 결제 없음’ 빌드를 배포하세요
앱 빌드에서 ‘앱 라이브러리에서’를 활성화한 후, 아래와 같이 앱 라이브러리 탐색기에 저장됩니다:
- 이 버전의 앱을 사용하여 다음을 수행할 수 있습니다:
- 릴리스를 생성할 때 ‘앱 라이브러리에서’ 옵션을 선택하고 ‘코드 결제 없음’ 플래그가 있는 빌드를 선택합니다.
- 업로드하는 동안 추가한 빌드 관련 정보를 확인하려면 해당 빌드 앞에 있는 (i) 아이콘을 클릭하세요.
중요n
- 다른 앱 빌드에 ‘앱 라이브러리에서’를 활성화하려면, 결제 페이지로 이동하여 오른쪽 하단의 수정을 클릭합니다.
제3자 결제
앱에 이미 있는 제3자 결제 시스템을 사용하실 수 있습니다.
방법:
- 결제 탭에서 제3자 결제를 선택합니다.
- 저장을 클릭합니다.
중요
- 제3자 결제 옵션 사용 시 모든 주문 및 관련 분석 데이터는 nowStudio에서 확인하실 수 없습니다.
인앱 상품
유저가 구매할 수 있도록 앱/게임 내에 적용할 인앱 상품을 추가하고 수정하는 단계입니다.
방법:
- nowStudio에 로그인합니다.
- 모든 앱을 선택합니다.
- 상단 메뉴에서 결제를 클릭합니다.
- 왼쪽 사이드바에서 인앱 상품을 클릭합니다.
- 선택:
벌크 임포트
인앱 상품을 nowStudio에 대량으로 가져오실 수 있습니다.
방법:
- 오른쪽 상단에 있는 벌크 임포트 버튼을 클릭합니다.
- 아래와 같이 + 아이콘을 클릭합니다.
- 인앱 상품이 포함된 .csv 파일을 선택합니다.
- (제공된 형식에 맞춰 CSV 파일을 준비해 주시기 바랍니다. CSV 형식 다운로드 링크를 클릭하여 다운로드하실 수 있습니다.)
- 기본 통화 활성화 (선택 사항)
- 기본 통화 옵션을 활성화하면, CSV에 특정 지역의 가격이 없는 제품을 당사가 업데이트합니다.
- 해당 지역의 새로운 가격은 선택한 기본 가격과 최신 환율을 기준으로 설정됩니다.
- 타겟 지역의 모든 제품에 기본 가격을 설정하십시오.
- 임포트를 클릭합니다.
지원되는 CSV 인코딩
언어/스크립트 |
인코딩 |
요약 |
범용 |
ASCII, UTF-8, UTF-16 (LE, BE), UTF-32 (LE, BE, LE BOM 포함, BE BOM 포함) |
BOM = 바이트 순서 표시 |
중국어 |
Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (번체 및 간체) |
번체 및 간체 중국어용; ISO-2022-CN은 둘 다 지원합니다. |
일본어 |
EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP |
SHIFT_JIS 및 CP932는 Windows 환경에서 자주 사용됩니다. |
한국어 |
EUC-KR, ISO-2022-KR, Johab |
EUC-KR은 널리 지원되며, Johab은 덜 일반적이지만 일부 애플리케이션에서 유용합니다. |
키릴 문자 (불가리아어 포함) |
KO18-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, Windows-1251 |
ISO-8859-5 및 Windows-1251은 불가리아어 지원에도 유용합니다. |
서유럽 |
ISO-8859-1, Windows-1252, MacRoman |
서유럽 언어에 일반적으로 사용됩니다. |
그리스어 |
ISO-8859-7, Windows-1253 |
그리스어에 일반적으로 사용됩니다. |
히브리어 |
ISO-8859-8, Windows-1255 (시각 및 논리) |
시각/논리 모드는 다른 텍스트 렌더링 시스템과의 호환성을 위해 지원됩니다. |
태국어 |
TIS-620 |
태국어 텍스트를 위한 인코딩 표준입니다. |
중요
- 타겟 지역의 모든 제품에 기본 가격을 설정하십시오.
- 게임이 플레이 스토어에 게시되어 있고 기존 인앱 상품이 있는 경우 구글 플레이 콘솔에서 해당 게임을 CSV로 다운로드 받으실 수 있습니다.
- 제공된 CSV 형식 내에서 제품 이미지를 추가 열로 추가하고 벌크 임포트를 사용하여 인앱 상품을 nowStudio에 추가하실 수 있습니다.
상품 추가
nowStudio에 인앱 상품을 추가하실 수 있습니다.
참고: nowStudio는 전 세계 사용자를 위해 현지화된 경험을 제공하기 위해 인앱 제품에 대한 번역을 추가할 수 있습니다. 사용자의 언어 환경 설정이 추가한 번역 언어와 일치하면 사용자는 IAP 제품의 번역된 버전을 볼 수 있습니다.
이를 위해 다음을 제공하십시오:
- 제품 ID
- 표시 제목
- 설명
- 아이콘 – 파일 선택을 클릭합니다
- 크기 – 1024 x 1024px
- 이미지 형식 – .JPG, .JPEG, .PNG
- 최대 크기 – 10 Mb
- 가격 설정을 선택합니다.
추가하는 제품에 대해 가격 템플릿을 선택/생성하거나 맞춤 가격을 설정할 수 있습니다.
- 가격 템플릿
- 기존에 생성된 가격 템플릿을 선택하거나
- 새 가격 템플릿 생성
- 템플릿 관리를 클릭합니다.
- 템플릿을 생성한 후 선택할 수 있습니다.
- 맞춤 가격
- 맞춤 가격 설정을 클릭합니다.
- 기본 가격을 입력합니다.
- 입력한 기본 가격을 기준으로, 모든 국가별 가격이 당시 환율을 사용하여 계산됩니다.
- 필요한 경우, 국가별 맞춤 가격을 제공할 수 있습니다.
- 저장을 클릭합니다.
- 제품의 기본 가격은 선택한 가격 템플릿 또는 설정된 맞춤 가격에서 가져옵니다.
- 지역 가격 보기를 클릭하여 나열된 기본 가격을 해당 통화로 변환할 수 있습니다.
- 필요한 경우, 가격 템플릿 / 맞춤 가격을 수정할 수 있습니다.
- 저장을 클릭합니다.
제품이 추가되면 인앱 제품 섹션에 표시됩니다:
- 위에 표시된 것처럼, 추가된 인앱 제품을 “CSV 내보내기”를 클릭하여 내보낼 수도 있습니다.
중요 정보
- 표시 제목 및 설명 필드에 대한 번역을 제공할 수 있습니다.
- 각 로캘/언어는 공백이나 쉼표 대신 새 줄로 구분해야 합니다.
- 번역은 추가된 로캘에 대해서만 표시됩니다. 다른 모든 로캘은 영어 (기본) 콘텐츠로 제공됩니다.
- 영어 콘텐츠를 제공하지 않은 경우, 첫 번째로 추가된 로캘을 기본으로 간주합니다.
- 번역을 추가하려면 여기에서 제공된 표준 로캘 태그 및 형식을 사용하십시오.
- IAP 번역 형식 예시
- 표시 제목 –
en-US: Sample Display Title
ja-JP: 表示タイトル例
ko-KR: 샘플 표시 제목
- 설명 –
en-US: Sample Description text
ja-JP: サンプル説明テキスト
ko-KR: 샘플 설명 텍스트
인앱 상품 수정
방법:
- 인앱 상품에서:
- 수정하려는 인앱 상품 옆에 있는 세부 정보를 클릭합니다.
- 수정 후 저장을 클릭합니다.
상품 삭제
방법:
- 인앱 상품에서:
- 삭제하려는 인앱 상품 옆에 있는 “세부 정보 보기“를 클릭합니다.
- 하단 모서리에 있는 삭제를 클릭합니다.
- 확인 창에서 삭제를 클릭합니다.
- 인앱 상품이 삭제됩니다.
중요
- 앱 내 구매 상품을 삭제하면 동일한 상품 ID 를 가진 다른 상품을 추가할 수 없습니다.
- 가격 템플릿은 추가하는 여러 앱에서 재사용하실 수 있습니다.
- 가격 템플릿을 관리하고 구성하려면 여기를 확인해 주시기 바랍니다.
구독
유저가 구매할 수 있도록 앱/게임 내에 구독 시스템을 추가하고 수정하는 단계입니다.
방법:
- nowStudio 에 로그인합니다.
- 모든 앱을 클릭합니다.
- 구독을 생성하려는 앱에 대해 자세히 보기를 클릭합니다.
- 상단 내비게이션에서 결제를 클릭합니다.
- 왼쪽 사이드바에서 구독 섹션을 클릭합니다.
- 오른쪽 상단에서 구독 생성을 클릭합니다.
구독 생성
다음을 통해 nowStudio에 구독 시스템을 추가하실 수 있습니다.
중요: 유저의 기본 언어 설정이 추가된 번역 언어와 일치하면 번역된 버전이 표시됩니다.
필요:
- 상품 ID
- 숫자, 소문자, 대문자, 밑줄, 마침표만 포함할 수 있습니다.
- 구독 세부 사항
- 이름
- 구독 상품의 간략한 이름으로 유저는 이메일에서 확인하게 됩니다.
- 이 필드는 여러 값을 줄 바꿈으로 구분하여 지원합니다(번역). 자세한 내용은 여기를 참조하세요..
- 설명
- 혜택
- 혜택 추가를 클릭하고 사용자가 구독할 때 얻는 혜택을 이해할 수 있도록 최대 4개의 혜택을 포함하십시오.
- 이 필드는 여러 값을 줄 바꿈으로 구분하여 지원합니다(번역). 자세한 내용은 여기를 참조하세요..
- 결제 주기
- 드롭다운 목록에서 구독 청구 기간을 선택합니다.
- 주기:
- 월 (기본)
- 주
- 4주
- 2개월
- 3개월
- 4개월
- 6개월
- 8개월
- 연
- 가격
- 드롭다운 목록:
- 이전에 생성된 가격 템플릿 선택 및
- 새 가격 템플릿을 생성합니다.
- 수정을 클릭합니다.
- 구독의 기본 가격은 선택한 가격 템플릿에서 가져옵니다.
- 가격 템플릿은 여러 앱에서 재사용할 수 있습니다.
- 가격 템플릿을 관리하고 구성하기 위해 여기를 확인해 보실 수 있습니다.
- 현지 가격을 클릭하면 나열된 기본 가격을 귀하의 통화로 변환할 수 있습니다.
- 기재된 기본 가격을 귀하의 통화로 변환하려면 로컬 가격 보기 버튼을 클릭하세요.
- 저장을 클릭합니다.
구독이 추가되면 구독 섹션에 표시됩니다.
중요 정보
- 디스플레이 제목, 설명 및 혜택 필드에 대한 번역을 제공할 수 있습니다.
- 각 로캘/언어는 공백이나 쉼표 대신 새 줄로 구분해야 합니다.
- 번역은 추가된 로캘에 대해서만 표시됩니다. 다른 모든 로캘은 영어 (기본) 콘텐츠로 제공됩니다.
- 영어 콘텐츠를 제공하지 않은 경우, 첫 번째로 추가된 로캘을 기본으로 간주합니다.
- 번역을 추가하려면 여기에서 제공된 표준 로캘 태그 및 형식을 사용하십시오.
- IAP 번역 형식 예시
- 표시 제목 –
en-US: Sample Display Title
ja-JP: 表示タイトル例
ko-KR: 샘플 표시 제목
- 설명 –
en-US: Sample Description text
ja-JP: サンプル説明テキスト
ko-KR: 샘플 설명 텍스트
- 혜택 –
en-US: Sample Benefit
ja-JP: サンプルの利点
ko-KR: 샘플 혜택
구독 수정
방법:
- 구독 섹션 내에서:
- 필요한 사항을 변경한 후 업데이트를 클릭합니다.
구독 삭제
방법:
- 구독 섹션 내에서:
- 삭제하려는 구독의 세부 정보를 클릭합니다.
- 하단 모서리에 있는 삭제를 클릭합니다.
- 확인 창에서 삭제를 클릭합니다.
- 상품이 삭제됩니다.
중요
- 구독 삭제 후 동일한 상품 ID로 다른 구독을 추가할 수 없습니다.
결제 설정
이 섹션을 사용하여 구독에 대한 결제 설정을 구성할 수 있습니다.
다음 항목을 구성할 수 있습니다:
- 콜백 URL
거래 후 요청 데이터를 전송하는 데 사용할 콜백 URL을 제공하십시오.
- API 키
API 키는 거래 후 전송된 요청 데이터와 함께 전달됩니다. API 호출의 진위를 확인하기 위해 이를 검증할 수 있습니다. (여기에서 재생성 / 보기)
구독 상태 콜백 API
구독 상태 업데이트에 대한 알림을 보내기 위해 SubscriptionStatusCallback
API를 제공하는 데 필요한 API입니다.
(개발자 제공)
중요
- 이 API는 개발자가 제공한 것입니다. 이 API를 사용하여 여기에서 정의된 구독 상태 업데이트 알림을 보낼 것입니다.
구독 상태를 업데이트하려면 SubscriptionStatusCallback API를 사용하셔야 하며 다음은 주문 처리와 관련된 설명입니다.
- nowStudio는 이 API를 사용하여 요청 데이터를 게임 백엔드로 보냅니다.
- 귀하의 게임 백엔드는 당사가 제공한 API 키를 사용하여 요청을 인증할 수 있습니다. (웹훅 API 키).
- 구독의 현재 상태에 따라 사용자의 구매 권한을 할당할 수 있습니다. (여기에서 정의됨).
- 제공한 콜백 URL을 사용하여 요청 데이터를 보낸 후, 귀하의 API에서 응답을 기다립니다.
- 상태 코드 200과 성공 여부가 true인 응답을 받지 못하면 일정 시간 동안 재시도합니다.
함수
헤더
Authorization: "<API-Key Here>"
Content-type: application/json
중요: 해당 섹션을 사용하여 API 키를 확인/재생성할 수 있습니다.
바디
바디 포함 변수입니다.
이름 |
형 |
값 |
설명 |
notificationType |
string |
여기 정의됨 |
구독 상태 업데이트에 따라 전송되는 특정 이벤트입니다. |
data |
object |
|
|
데이터 오브젝트
다음 매개변수들은 데이터 객체와 연관됩니다.
Params |
Type |
Sample Values |
Description |
orderId |
string |
1-202402110116343 |
구매 주문과 관련된 주문 ID입니다. |
packageName |
string |
gg.now.sample.app |
앱의 패키지 이름입니다. |
productId |
string |
SampleProduct |
사용자가 구매하는 상품 ID입니다. |
eventTime |
long |
1707965194000 |
이벤트와 관련된 에포크 타임스탬프입니다. |
amount |
float |
24.99 |
주문과 관련된 금액입니다. |
isTestOrder |
boolean |
true |
True/False |
currency |
string |
USD |
인앱 구매 주문과 관련된 통화입니다. |
paymentId |
string |
1234 |
앱의 고유 식별자. |
developerPayload |
string |
{UID: abc} |
주문에 대한 추가 정보가 포함된 개발자가 지정한 문자열입니다. |
예상 응답
다음은 SubscriptionStatusCallback
API의 샘플 예상 응답입니다.
{
"success": true,
"reason": "reason_for_failure". // 선택적 매개변수로 success 가 false인 경우에만 필요합니다.
}
notificationType 이벤트
다음 이벤트는 알림 유형으로 전송될 수 있습니다.
이벤트 |
설명 |
WEBSHOP_ITEM_PURCHASED |
웹샵 아이템을 구매하면 전송됩니다. |
SUBSCRIPTION_PURCHASED |
구독을 구매하면 전송됩니다. |
SUBSCRIPTION_RENEWED |
구독이 갱신되면 전송됩니다. |
SUBSCRIPTION_CANCELLED |
구독이 취소되면 전송됩니다. |
SUBSCRIPTION_EXPIRED |
구독이 만료되면 전송됩니다. |
웹훅 테스트
이 기능을 사용하여 구독 상품의 상태 업데이트를 백엔드 서버로 전송하는 SubscriptionStatusCallback
API를 편리하게 테스트할 수 있습니다.
중요
- 테스트 유저의 구독 주문에만 작동합니다.
- 확인 사항:
웹훅 테스트 방법:
- 모든 앱에서.
- now.gg 결제와 함께 앱 이름 앞의 세부 정보보기를 클릭합니다.
- 상단 내비게이션 바에서 결제를 클릭합니다.
- 왼쪽 내비게이션에서 웹훅 테스트를 클릭합니다.
- 테스트 구매 주문으로 생성된 주문 ID를 입력합니다.
- 각 주문 후에는 고유한 주문 ID가 생성되며, 이는 분석 > 주문 관리에서 확인할 수 있습니다.
- 알림 유형 설정:
SUBSCRIPTION_RENEWED
– 구독 갱신.
SUBSCRIPTION_EXPIRED
– 구독 만기 표시.
- 제출을 클릭합니다.
- 앱 백엔드에 알리고 구독 결제와 함께 제공된 개발자 페이로드를 보냅니다.
- 성공적인 콜백은 ‘웹훅 호출 성공‘ 메시지로 확인됩니다.
- 에러 시 해당 정보가 포함된 메시지로 알려드립니다.
참고:
SUBSCRIPTION_RENEWED
웹훅은 지정된 주문 ID의 구독을 갱신합니다. 그러나 갱신된 구독은 새로운 주문 ID를 생성합니다.
SUBSCRIPTION_RENEWED
웹훅은 활성 상태의 구독에 대해서만 작동하며, 만료 또는 취소된 상태의 구독을 갱신할 수 없습니다.
- 구독이 취소되거나 만료된 경우, 게임 내에서 다시 구매할 수 있습니다.
내부 테스터
제공된 now.gg 통화를 사용하여 인앱 구매를 수행하고 전체 구매 흐름을 테스트할 수 있게 앱 테스터를 추가하실 수 있습니다.
방법:
- 모든 앱에서
- 테스트하려는 앱 옆의 세부 정보를 클릭합니다.
- 왼쪽 사이드바에서 테스터를 클릭합니다.
- 테스터 추가를 클릭합니다.
- 테스트에 사용할 now.gg 계정과 연결된 이메일 주소를 아래와 같이 입력하세요:
- 추가를 클릭합니다.
‘테스터가 성공적으로 추가되었습니다’라는 확인 메시지가 화면에 표시됩니다.
중요
- 테스터를 추가한 후 now.gg 결제 테스트를 계속 진행하실 수 있습니다.
- SDK 버전이 3.0보다 낮은 경우, 사용자의
IN_GAME_ID
를 사용하여 결제를 테스트할 수도 있습니다.
테스터 삭제:
- 모든 앱에서
- 테스트하려는 앱 옆의 세부 정보를 클릭합니다.
- 왼쪽 사이드바의 테스터를 클릭합니다.
- 아래와 같이 테스터 목록이 표시됩니다.
- 아래와 같이 확인 창이 열립니다.
- 삭제를 클릭합니다.
‘테스터가 성공적으로 삭제되었습니다’라는 확인 메시지가 화면에 표시됩니다.
자격 증명
now.gg Cloud는 앱에 적용할 수 있는 다양한 API와 서비스를 제공해 드립니다. 먼저 필요한 자격 증명이 있는지 확인해 주시기 바랍니다.
- 자격 증명을 생성하고 보는 단계는 여기에서 확인해 보실 수 있습니다.