목차

이전 항목

iOS

다음 항목

제스처

링크


원문 보러 가기
오역 신고하기
Created using Sphinx.

인앱 구매 시스템

렌파이에는 고급 인앱 구매 시스템 제작틀이 있습니다. 이 틀은 현재 애플 앱 스토어, 구글 플레이와 아마존 앱스토어용 잠금 해제 스타일의 구매 형태만 지원합니다.

이 틀을 사용하는 방법은 꽤 간단하며 다음과 같은 기능으로 이루어져있습니다.

  • 게임 초기화 단계에서 iap.register() 함수를 사용해 사용할 수 있는 구매 항목을 모두 등록합니다.
  • 일단 게임이 시작되면 iap.has_purchased() 함수를 사용해 구매가 이루어졌는지 확인합니다.
  • iap.purchase() 함수나 iap.Purchase() 액션을 사용해 사용자가 아이템을 구매할 수 있도록 합니다.
  • iap.restore() 함수나 iap.Restore() 액션을 사용해 다른 기기에서 구매 내역을 복원할 수 있도록 합니다.

인앱 구매 시스템을 제공하려면 여러 마켓에서 판매할 구매 항목(및 해당 항목 가격)이 반드시 설정되어야 합니다. 빌드를 만들 때 렌파이는 패키지 설정 시 이용하려는 마켓이 무엇인지 물을 것입니다.

애플 앱스토어
애플 앱 스토어는 패키지 이름을 기반으로 하며 특별한 설정이 필요하지 않습니다.
구글 플레이
구글 플레이를 사용하기 전에 반드시 구글 플레이 키와 솔트를 프로젝트에 추가해야합니다. 확장 APK 확장 apk 항목에서 이에 대한 내용을 확인할 수 있습니다.
아마존 앱스토어
아마존 앱스토어는 패키지 이름을 기반으로 하며 특별한 설정이 필요하지 않습니다.

IAP 함수

iap.get_price(product)

product 가격이 사용자의 지역 통화 단위로 적힌 문자열을 반환한다. product 가격을 알 수 없으면 None을 반환한다. 참고로 이는 구매할 수 없는 `product`를 의미한다.

iap.get_store_name()

인앱구매 시스템이 활성화된 스토어 이름을 반환한다. 현재는 "amazon", "google", "ios" 또는 설정된 스토어가 없는 경우에 None을 반환한다.

iap.has_purchased(product)

사용자가 과거에 product 를 구매했다면 True 를 반환하며 아니면 False를 반환한다.

iap.is_deferred(product)

사용자가 product 구매를 요청하면 True 를 반환한다. 그러나 해당 요청은 부모나 보호자 같은 제 삼자의 승낙을 받은 것이어야 한다.

iap.purchase(product, interact=True)

이 함수는 product 구매를 요청한다.

과거에 구매에 성공했거나 현재 구매에 성공하면 True 를 반환하며 아니면 False를 반환한다.

iap.register(product, identifier=None, amazon=None, google=None, ios=None)

인앱 구매 시스템으로 제품을 등록한다.

product
상품의 이름이 적힌 문자열. 제품을 대표하는 문자열로, iap.purchase(), iap.Purchase(), iap.has_purchased() 에 전달된다.
identifier

내부에서 상품을 식별할 때 사용하는 문자열. 일단 상품을 대표하여 사용되고 나면 이 값은 절대 바뀌어서는 안 된다. 이 문자열은 일반적으로 "com.domain.game.product" 과 같은 형태이다.

None이라면, 기본값은 product 의 값을 따른다.

amazon
아마존 앱스토어에서 상품을 식별하기 위해 사용되는 문자열. 값을 설정하지 않으면 기본값은 identifier 의 값을 따른다.
google
구글 플레이에서 상품을 식별하기 위해 사용되는 문자열. 값을 설정하지 않으면 기본값은 identifier 의 값을 따른다.
ios
iOS의 애플 앱스토어 상품을 식별하기 위해 사용되는 문자열. 값을 설정하지 않으면 기본값은 identifier 의 값을 따른다.
iap.restore(interact=True)

스토어에 접촉해 사라진 상품을 복원한다.

interact
True면 스토어의 응답을 기다리는 동안 renpy.pause 를 호출한다.

IAP 액션

iap.Purchase(product)

product 구매를 시도하는 액션. 이 액션은 상품을 구매할 수 있는 경우 - 스토어가 활성화되어있으며 해당 상품이 이미 구매된 경우가 아닌 경우에만 가능한 액션이다.

iap.Restore()

스토어에 접촉해 사라진 상품을 복원한다.