방법: 인앱 구매를 사용하도록 웹사이트 구성하기

업데이트 날짜 13. 6월 2025 작성자 Jan Bunk


인앱 구매 상품 만들기

다음 가이드에 따라 인앱 구매 상품과 구독을 만들 수 있어요.

개발자 계정에서 결제를 활성화하려면 추가 정보를 입력하라는 요청을 받을 수 있어요.

각 플랫폼에서 인앱 구매 상품을 만들어야 하므로, 두 플랫폼에서 동일한 상품 ID를 사용하세요. 그러면 JavaScript를 통해 인앱 구매를 더 쉽게 실행할 수 있어요(아래 참조).

인앱 구매 실행하기

먼저 현재 사용자가 앱을 사용 중인지 확인하는 것이 좋아요. 일반 브라우저 사용자는 인앱 구매를 할 수 없기 때문이에요.

다음의 executeWhenAppReady() 함수를 확인해 보세요. 앱 도우미 스크립트예요.. 이 함수는 앱이 준비되기 전이나 웹사이트가 일반 브라우저에서 로드되었을 때 웹사이트에서 앱과 상호작용을 시도하지 않도록 해줘요(ReferenceError, 함수가 정의되지 않음).

그런 다음 사용자가 앱을 이용 중이라면 아래 JavaScript를 사용해 인앱 구매를 실행할 수 있어요.


<script>
    try {
        // productId is the ID you specified for the in app purchase product in App Store Connect and the Google Play Console
        // consumable is a boolean value that indicates whether the product can be purchased multiple times (consumable==true) or just once (consumable==false)
        // subscriptions should use consumable==false
        // userIdentifier can be any string that identifies the current user.
        // The userIdentifier will be sent to your server's unlocking endpoint if the purchase is successful (so you can then unlock the product that was bought on your server)
        resultingStatus = await makeInAppPurchase(productId, consumable, userIdentifier)["status"];
        
        switch (resultingStatus) {
            case "failed":
                // The purchase failed, for example due to an error while verifying the purchase
                break;
            case "canceled":
                // The user canceled the purchase, for example by pressing the back button
                break;
            case "completed":
                // The purchase was successful
                break;
        }
    } catch (e) {
        // Some kind of error occurred, e.g. the given productId is invalid
    }
</script>
    

함수의 완료를 기다리는 동안 사용자에게는 앱에서 제공하는 화면이 표시돼요. 구매가 완료되면 JavaScript 함수가 결과를 반환하므로, 필요에 따라 페이지를 새로고침하거나 UI를 업데이트할 수 있어요. 사용자가 네이티브 앱 화면을 닫으면 웹사이트로 돌아가요.

사용자가 네이티브 화면에서 구매 절차를 진행하는 동안 인앱 구매 확인 URL로 요청이 전송돼요.

인앱 구매가 완료되기를 기다리는 앱 화면의 스크린샷이에요.

인앱 구매 복원하기

다음의 executeWhenAppReady() 함수를 확인해 보세요. 앱 도우미 스크립트예요.. 이 함수는 앱이 준비되기 전이나 웹사이트가 일반 브라우저에서 로드되었을 때 웹사이트에서 앱과 상호작용을 시도하지 않도록 해줘요(ReferenceError, 함수가 정의되지 않음).

사용자에게 "구매 복원" 옵션을 제공할 수도 있어요.


<script>
    restorePurchases()
</script>
    

일반적으로 사용자가 앱을 삭제한 후 새 기기에 다시 설치했을 때 구매 복원이 필요해요. 이때 이전 구매 내역을 복원할 수 있어요. 사용자의 정보와 구매 내역은 이미 사용자의 기기와 독립적인 서버에 저장되어 있어요.

다른 상황에서도 유용할 수 있으므로 구매 복원 기능을 연동할 수 있는 방법을 제공하고 있어요. 예를 들어 사용자의 구매를 확인하고 잠금 해제하는 과정에서 문제가 발생했을 때 도움이 될 수 있어요.

다음 단계

사용자가 앱에서 구매를 완료한 후에는 서버에서 구매를 확인하고, 확인에 성공하면 서버에서 구매한 콘텐츠를 잠금 해제해야 해요.

자세한 내용과 가이드는 인앱 구매 설정 에서 확인해 주세요.

인앱 구매 개요