인앱 구매
Ren'Py는 고수준 인앱 구매 프레임워크를 제공합니다. 현재는 Apple App Store, Google Play, Amazon Appstore의 콘텐츠 잠금 해제형 구매만 지원합니다.
사용 방법은 비교적 간단하며, 다음 함수들을 이용합니다.
게임 초기화 단계에서
iap.register()로 구매 가능한 상품을 등록합니다.게임이 시작된 뒤
iap.has_purchased()로 구매 여부를 확인합니다.iap.purchase()함수나iap.Purchase()액션으로 상품을 구매할 수 있게 합니다.iap.restore()함수나iap.Restore()액션으로 다른 기기에서 구매한 항목을 복원할 수 있게 합니다.
인앱 구매를 제공하려면 각 스토어에서 가격 등을 포함한 상품 설정을 먼저 해야 합니다.
인앱 구매 함수
- iap.get_price(product)
product의 가격을 사용자 지역의 통화로 나타낸 문자열을 반환합니다. 가격을 알 수 없으면 None을 반환하며, 이 경우 상품을 구매할 수 없습니다.
- iap.get_store_name()
사용 가능한 인앱 구매 스토어의 이름을 반환합니다. 현재는 "amazon", Google Play를 뜻하는 "play", "ios" 중 하나이며, 사용할 스토어가 없으면 None입니다.
- iap.has_purchased(product)
사용자가 이전에 product를 구매했으면 True, 아니면 False를 반환합니다.
- iap.init()
인앱 구매 시스템을 초기화합니다. 모든 iap.register() 호출 뒤, 다른 iap 함수 호출 전에 실행해야 합니다. 명시적으로 호출하지 않으면 초기화 단계가 끝날 때 자동 호출됩니다.
- iap.is_deferred(product)
사용자가 product의 구매를 요청했지만 부모나 보호자 같은 제삼자의 승인이 필요한 상태이면 True를 반환합니다.
- iap.purchase(product, interact=True)
product의 구매를 요청합니다.
구매에 성공하면 참, 실패하면 거짓을 반환합니다. 소모성 상품으로 등록했다면 호출이 반환되기 전에 구매 항목이 소비 처리됩니다.
- iap.register(product, identifier=None, amazon=None, google=None, ios=None, consumable=False)
인앱 구매 시스템에 상품을 등록합니다.
- product
프로그램에서 사용하는 상품 이름 문자열입니다.
iap.purchase(),iap.Purchase(),iap.has_purchased()에 이 문자열을 전달해 상품을 지정합니다.- identifier
내부적으로 상품을 식별하는 문자열입니다. 상품에 한 번 사용한 뒤에는 절대 변경하면 안 됩니다. 보통 "com.domain.game.product" 형태입니다.
None이면 product를 사용합니다.
- amazon
Amazon Appstore에서의 상품 식별 문자열입니다. 생략하면 identifier를 사용합니다.
Google Play에서의 상품 식별 문자열입니다. 생략하면 identifier를 사용합니다.
- ios
iOS용 Apple App Store에서의 상품 식별 문자열입니다. 생략하면 identifier를 사용합니다.
- consumable
소모성 상품이면 True입니다. 현재 소모성 구매는 iOS에서만 지원합니다.
- iap.request_review()
앱 스토어에 사용자 리뷰 요청을 전달합니다. 요청에 성공하면 참, 실패하면 거짓을 반환합니다. 실제 리뷰 요청 화면을 띄울지는 스토어가 결정하므로, 성공했다고 반드시 사용자에게 리뷰를 요청하는 것은 아닙니다.
Google Play와 Apple App Store에서만 지원합니다.
- iap.restore(interact=True)
앱 스토어에 연결해 누락된 구매 항목을 복원합니다.
- interact
True이면 스토어의 응답을 기다리는 동안 renpy.pause를 호출합니다.
인앱 구매 액션
- iap.Purchase(product, success=None)
product의 구매를 시도하는 액션입니다. 사용 가능한 스토어가 있고 아직 구매하지 않은 상품인 경우에만 활성화됩니다.
- success
None이 아니면 구매 성공 시 실행할 액션이나 액션 목록입니다.
- iap.Restore()
앱 스토어에 연결해 누락된 구매 항목을 복원하는 액션입니다.