상세 컨텐츠

본문 제목

[Unity] 유니티 디바이스 결제(IAP) 연동 관련

게임엔진관련/유니티 엔진

by AlrepondTech 2021. 2. 16. 16:11

본문

반응형

 

 

 

 

 

 

=======================

=======================

=======================

 

 

 

 

 

 

인앱 결제 (In-App Purchase) 종류

- Consumable products: 결제 후 사용하면 일회성으로 소비되는 상품. 예를 들어 voice talk credit이나 게임상에서 사는 게임 머니 등이 있다.

- Non-consumable products: 한 번 사면 무한정 가지고 있을 수 있는 상품. unlock한 게임 레벨, 책 컨텐츠 , 카메라 앱에서 구매한 스티커나 프레임등이 여기에 해당된다.

- Auto-renewable subscription: 정기적으로 결제가 일어나는 상품으로 일정 기간 동안만 컨텐츠 이용이 가능하다. active한 기간동안 모든 device에서 접근 가능해야 하며 이는 restore 가 되어야 함을 뜻한다. non-consumable과는 다르게 expiration date가 존재하며 만료 전 ios 시스템에서 자동으로 renewal을 시도한다. 음악 정기결제, 잡지 정기 결제 등이 해당된다.

- Non-renewable subscriptions: 일정 기간 동안만 사용 가능한 상품으로 자동갱신이 일어나지 않는다.

 

 

 

 

 

 

 

=======================

=======================

=======================

 

 

 

 

 

 

 

이 글은 2021.02.17일 기준으로 작성 되었습니다.

유니티 디바이스 결제 연동 해보기("Android"를 예로 하겠습니다.)

 

//---------------------------------------------------------------------------------------------------------------------

유니티에서 결제 연동을 하려면 유니티 서비스창 리스트에서 결제란을 선택해서 들어가야 합니다.

그림1

"그림1"빨간표시와 같이 유니티 윗쪽 메뉴에서

"Window > General > Services"로 들어가 주면

유니티 오른쪽 레이아웃 부분에 "Services" 창이 생깁니다.

("Services" 이 다른쪽 위치 레이아웃에 생길수도 있으니 창이 안보이면 다른 위치에 창이 생겼는지 확인해보세요)

 

//---------------------------------------------------------------------------------------------------------------------

그림2

"Services" 창의 리스트,

"그림2"와 같이 빨간표시를 보시면 "In-App-Purchasing"가 보이는데 "OFF"로 되어있습니다

"ON"으로 만들어 주어야겠지요?!?! ㅎ

이 빨간표시부분 "In-App-Purchasing" 을 눌러주세요.

 

//--------------------------------------------------------------------------------------------------------------------------

그림3

"그림2"의 설명과 같이 하시면 "그림3"과 같은 창이 뜹니다.
"그림3"
을 보시면, 

Will this app be primarily targeted to children under age 13?

"이 앱은 주로 13 세 미만의 어린이를 대상으로합니까?"

이렇게 설명이 되어 있는데,

나오는 빨간표시와 같이 선택창에 "No" 그리고 "Save"을 눌러줍니다.

 

//--------------------------------------------------------------------------------------------------------------------------

그림4

"그림3"의 과정을 거치면 "그림4"처럼 창이 나오는 여기에서 "OFF" 로 되어있는

버튼을 눌러 주어"ON"으로 만들어 줍니다.

 

//--------------------------------------------------------------------------------------------------------------------------

그림5

"그림4"의 과정을 거치면 "그림5"의 화면처럼 됩니다, 여기서 빨간동그라미 표시부분 버튼이 (import, Reimport)로 

되어 있는데 눌러 줍니다, "Unity IAP Installer"창이 나오는데 여기에서 "Install Now" 버튼을 눌러 줍니다.

 

//--------------------------------------------------------------------------------------------------------------------------

그림6

"그림5" 와 같이 진행하면 "그림6"과 같이 나오는데 여기에서 빨간 표시 진행대로 하면서 

마지막에 "Import Unity Package"의 밑부분의 빨간표시 "All"버튼을 눌러준후 "Import" 버튼을 눌러준다.

"그림6" 과정은 제대로 설치 안될경우도 있으므로 그럴 경우 다시 "ReImport" 눌러주어 설치해 줄 수 있다.

이제 이과정이 끝나고 안드로이드 결제 연동을위해 "구글 결제 라이선스키"가 필요합니다

 

//--------------------------------------------------------------------------------------------------------------------------

그림7

일단은 "구글관리자콘솔"에 들어가야 한다,

URL주소: play.google.com/apps/publish/

만약 자신이 구글개발자등록이 안되어 있다면 

개발자등록부터 하고 구글관리자콘솔에 들어가서 앱을 하나 개설해보자,

콘솔관리자에서 앱을 개설후 관리자에서 앱으로 들어간다 들어가면 "그림7"을 보면

외쪽 메뉴부분에 "수익 창출 설정" 부분을 누루고 오른쪽에 내용을 보면 "라이선스" 라고

크게 적힌 부분에 줄줄히 적힌 키코드가 보일것이 이걸 복사 해주자.(이것이 "라이선스키"다)

 

 

 

반응형

 

728x90

 

 

 

//--------------------------------------------------------------------------------------------------------------------------

그림8

"그림7"에서 설명했던 "라이선스키""그림8"의 빨간표시부분에 넣어주고 확인을 눌러 주고 

만약에 창이 나온다면 모두 다음, 수락, 동의를 눌러주면 된다.

이렇게하고 창을 나와서 유니티 메뉴부분을 보자.

 

//--------------------------------------------------------------------------------------------------------------------------

그림9

유니티 메뉴부분의 "Window" 부분을 눌러보자

"Unity IAP" 란이 생겼을 것이다 만약 없다면 다시 맨처음 위로 돌아가서 다시 하나씩 과정을 거쳐가면 된다.

이제 "그림9"의 빨간표시와 같이 눌러보자.

 

//--------------------------------------------------------------------------------------------------------------------------

그림10

"그림9"의 과정을 거치면 다음과 같은 "그림10" 창이 나오고 빨간표시부분 마다

버튼이 나오는데 버튼을 누루면 다음빨간 표시부분으로 버튼들이 생기고

모두 둘러주면 된다. 만약에 "false"라고 뜨고 실패했다고 뜨면

다시 윗부분의 맨처음에 했던 과정을 보면서

제대로, 설치("Import, ReImport") 또는 "라이선스키"가 제대로 들어갔는지

다시 돌아가서 확인해 주면 된다. 

//--------------------------------------------------------------------------------------------------------------------------

그림11

윗부분과정의 설치("Import, ReImport") 또는 "라이선스키"가 제대로 들어가고

그뒤의 과정도 모두 거쳤다면 "그림11"과 같이

Unity 메뉴부분의 "Window > Unity IAP" 메뉴에 여러가지

결제기능을 설정할수 있는 메뉴들이 생긴다.

(제대로 모두 설치가 되어있는 상태이면 "그림9, 그림10" 과정 없이 바로 "그림11"과정으로 올 수 있다.)

 

이제 "그림11"결제 카테고리 하나를 추가해줄 인앱 결제상품을 하나를 "구글관리자콘솔"에서 만들어 줍니다. 

그림12

"그림12" 왼쪽 메뉴에서 "수익창출">"제품">"인앱상품" 으로 들어가서 상품을 만들고 

"상품제목" "상품ID"를 정해 줍니다.

 

결제카탈로그 설정

그림13

"그림13" 빨간 표시처럼 눌러주시고 "IAP Catalog 카탈로그 팝업창"이 뜹니다

여기에서 아까 "그림12"에서 해주었던 "상품제목"  "상품ID"을 설정해 줍니다.

 

결제버튼 설정

그림14

"그림14" 빨간 표시처럼 눌러주시고 버튼을 적당히 UI에 설정해 줍니다.(저는 대강 테스트용으로 가운데로 ^^;) 

여기에서 "Product ID" 부분에 "그림13"에서 "결제카탈로그" 설정했던 부분을 선택해 줍니다.

 

결제이벤트 리스너 설정

그림15

결제를 했으면 결제 진행이 어떻게 되었는지 결제진행이벤트를 받을 곳도 필요합니다

"Create IAP Listener"가 그런 역활을 해주는 오브젝트를 생성해 줍니다.

"그림15" 빨간 표시부분 대로 해주시고 

"그림15"를 보시면 "IAP Listener"오브젝트가 생기는 걸 볼 수 있습니다. "IAP Listener" 오른쪽의

속성메뉴쪽을 보시면 "On purchase Complete", "On Purchase Failed" 두가지 성공,실패 했을때 이벤트를

보내주는 곳을 설정할 수 있습니다.

 

결제 테스트 실행

그림16

"그림16"은 자신이 설정한 "결제버튼UI"을 눌렀을때 다음과 같이 "FakeStore UI"가 나옵니다

여기에 "FakeStore UI"의 버튼을 눌러보시고 "그림15"에서 설정한 이벤트가 제대로 오는지 확인하시면 됩니다.

 

실제 앱의 테스트는 안드로이드에서 올려서 해야 확신이 가겠지요.

앱을 안드로이드 앱에 출시전 까지 구글콘솔관리자에 올리고

위와같은 과정들의 설정을 모두하고 "콘솔관리자테스트" 과정을 거치면 테스트용으로 

안드로이드로 자신의 앱을 받아서 테스트할 수 있습니다. 이렇게 테스트를 하면 

"FakeStore UI"대신에 구글의 앱스토어 테스트 팝업창이 뜨면서 더욱 믿을만한 테스트를 할 수 있습니다~!

 

 

 

 

=======================

=======================

=======================

 

 

 

 

 

 

*기타관련링크

- blog.naver.com/PostView.nhn?blogId=lyw94k&logNo=221381965587

- devparklibrary.tistory.com/27

- thd0011.tistory.com/56

 

 

 

 

 

=======================

=======================

=======================

 

 

 

 

 

 

반응형


관련글 더보기

댓글 영역