Skip to main content

PlayFab과 Apple App Store를 사용하여 인앱 구매 설정

이 자습서에서는 Apple App Store 인앱 구매(IAP) 아이템을 만들고, Game Manager의 카탈로그에 추가하며, 플레이어를 리뎀션 프로세스로 안내하는 방법에 대한 단계별 지침을 제공합니다.

필수 구성 요소

  1. PlayFab Game Manager의 타이틀.
  2. PlayFab에서 선택한 타이틀과 Apple App Store 간의 기존 통합.
  3. App Store Connect에 대한 액세스.
  4. App Store Connect에서 이미 생성된 앱.
  5. App Store Connect의 앱 내에 만들어진 인앱 구매. 인앱 구매에는 가격 책정지역화가 포함되어 있어야 합니다.
  6. 이미 앱의 일부인 해당 Transaction Observer가 있는 Payment Queue.

1단계: 테스트 사용자 만들기

실물 결제 없이 구매를 제대로 테스트하려면 앱의 테스트 사용자를 만드는 것부터 시작하세요.
  1. App Store Connect > Users and Access로 이동합니다.
  2. Sandbox를 선택합니다. Sandbox tab option
  3. Test Accounts 옆의 더하기 기호(+) 버튼을 선택합니다.
  4. 양식을 채우고 Create를 선택합니다. New test user form

2단계: Game Manager에서 번들 만들기

Game Manager에서 번들을 만들기 전에 카탈로그에서 번들에 추가하려는 아이템을 이미 만들고 게시했는지 확인하세요. 이 자습서에서는 Super Awesome Sword라는 검을 이미 만들었다고 가정합니다. 아이템 만드는 방법에 대한 안내가 필요하면 이 단계를 참조하세요.
Game ManagerApp Store Connect 간에 마켓플레이스 매핑을 활성화하려면 Game Manager에서 번들을 만들어야 합니다. 번들은 다양한 수량의 여러 아이템을 포함할 수 있으며, PlayFab은 리뎀션되면 이를 플레이어의 인벤토리에 추가합니다. Game Manager에서 새 번들을 만들려면 다음 단계를 따르세요.
  1. Game Manager로 이동하여 Title로 이동합니다.
  2. 왼쪽 탐색 메뉴에서 Engage > Economy를 선택합니다.
  3. Bundles 탭을 선택합니다. Bundles tab
  4. New bundle을 선택합니다.
  5. 아이템 및 가격과 같이 번들에 원하는 정보를 추가합니다. 이 자습서에서는 이름으로 Super Awesome Sword Bundle을 사용합니다. Bundle options
  6. 페이지 끝까지 아래로 스크롤하여 플레이어가 즉시 리뎀션할 수 있도록 하려면 Save and publish를 선택합니다. 나중에 게시하려면 “Save as draft”를 선택합니다. Save options

번들에 아이템 추가

번들 자체는 플레이어에게 아이템을 부여하지 않습니다. 먼저 아이템을 연결해야 하며 리뎀션되면 해당 특정 플레이어에게 해당 아이템을 부여합니다. 번들에 아이템을 추가하려면 다음 단계를 따르세요.
  1. 편집 모드에서 Items 섹션으로 이동합니다.
  2. Add를 선택합니다. 모든 카탈로그 아이템을 표시하는 창이 나타납니다.
  3. 유형별로 필터링하거나 특정 아이템을 검색할 수 있습니다.
  4. Super Awesome Sword를 찾아 옆에 있는 Add를 선택합니다.
  5. 마지막으로 하단의 Add 버튼을 선택합니다.
이렇게 하면 아이템이 번들에 추가됩니다. Add items to a bundle

3단계: 마켓플레이스 매핑 활성화

플레이어가 앱에서 번들을 구매할 때 Game Manager에서 올바르게 구매되고 할당되도록 하려면 Marketplace Mapping을 구성해야 합니다. 이는 Game Manager에서 번들을 만드는 동안 수행하거나 만든 후 편집 모드에서 번들로 돌아가 수행할 수 있습니다.
  1. 편집 모드에서 번들로 이동합니다.
  2. Marketplace Mapping 섹션까지 아래로 스크롤합니다.
  3. Marketplace 드롭다운에서 원하는 마켓플레이스를 선택합니다. (이 자습서의 경우 AppleAppStore입니다.)
  4. Marketplace ID의 경우 App Store ConnectProduct ID와 동일한지 확인하세요. 이 자습서에서는 pf.commerce.ios.sas1을 사용했습니다.
  5. 마무리하려면 해당 행 오른쪽에서 + 를 선택하고 변경 사항을 저장합니다.
Marketplace mapping

4단계: 구매하기

이 주제에 대해 자세히 알아보려면 In-App Purchases를 참조하세요. 인앱 구매 구성 방법에 대한 개요는 Apple’s Developer Documentation을 참조하세요.
이제 App Store ConnectIAP가 만들어졌고 Game Manager에서 아이템과 함께 번들이 구성되었으며 번들Marketplace Mapping이 설정되었습니다. 이제 에서 IAP를 구매하는 것으로 넘어갑니다. 앱에서 IAP 아이템이 노출되고 구매 가능해지면 1단계에서 만든 테스트 사용자를 사용하여 앱에서 IAP를 구매할 수 있습니다. 이것이 완료되면 Apple의 API가 영수증을 반환해야 하며, 이 영수증은 PlayFab의 리뎀션 API와 함께 사용하여 구매를 검증하고 번들의 아이템을 플레이어에게 부여해야 합니다.

5단계: 인앱 구매 리뎀션

Apple의 API에서 영수증을 받으면 PlayFab의 RedeemAppleAppStoreInventoryItems API 호출을 사용하여 IAP를 성공적으로 리뎀션해야 합니다. 이 경우 인증된 플레이어에게 Super Awesome Sword를 부여해야 합니다.

두 ID가 일치하는지 확인

리뎀션 호출을 하기 전에 마켓플레이스 매핑에 Game Manager에서 사용한 Alternate IDApp Store ConnectProduct ID와 일치하는지 확인해야 합니다. 다음 스크린샷은 Game Manager의 번들 내부에서 가져온 것입니다. Marketplace ID는 우리가 AlternateId라고 부르는 것이며, 기본적으로 번들을 식별하는 또 다른 방법입니다. Marketplace mapping App Store Connect에서 My Apps로 이동하여 원하는 앱을 선택한 다음 왼쪽 탐색 메뉴에서 Features > In-App Purchases로 이동하고, 마지막으로 IAP를 선택하면 IAP 메타데이터에서 Product ID를 볼 수 있습니다. App Store Connect Product ID

플레이어 인증

아이템을 리뎀션하려면 RedeemAppleAppStoreInventoryItems를 사용합니다. 하지만 그 전에 아이템을 리뎀션하려는 플레이어가 앱에서 올바르게 인증되었는지 확인해야 하며, 이를 위해 LoginWithApple을 사용합니다. LoginWithApple 호출이 성공한 후 PlayFab의 API는 X-EntityToken 키가 있는 RedeemAppleAppStoreInventoryItems 헤더의 일부로 사용해야 하는 EntityToken을 반환합니다. API 플랫폼을 사용하여 테스트하는 경우 다음과 같이 표시됩니다. API platform header keys

리뎀션 호출

플레이어가 인증되고 두 ID가 모두 확인되고 일치하며 플레이어가 앱에서 구매한 영수증이 있으면 리뎀션 호출을 할 준비가 되었습니다. 이를 위해 RedeemAppleAppStoreInventoryItems API 호출을 사용합니다.
리뎀션 호출은 IAP의 성공적인 구매 후 Apple이 반환한 영수증이라는 단일 값만 있습니다. 성공적인 응답에는 timestampMarketplaceTransactionId와 같은 데이터와 함께 200 status code가 포함됩니다. 성공적인 리뎀션 호출이 실행된 후 인증된 플레이어의 인벤토리에서 Super Awesome Sword를 볼 수 있어야 합니다. 이는 플레이어의 트랜잭션 이력에서 해당 이벤트를 트리거합니다. 이는 Game Manager의 플레이어 개요 페이지 아래의 Transaction History (V2) 탭에서 검색할 수 있습니다. 플레이어의 트랜잭션 이력에 있는 새 로그 항목과 함께 items_redeemed PlayStream 이벤트도 트리거되고 기록됩니다. Game Manager의 왼쪽 탐색 모음의 Analyze 섹션 아래에 있는 Data 페이지로 이동하여 타이틀의 이러한 로그에 액세스할 수 있습니다. 여기서 쿼리를 편집하여 특정 레코드를 검색하거나 기본 설정으로 실행하여 모든 것을 가져올 수 있습니다. Event nameitems_redeemed인 레코드가 있어야 합니다.

6단계: 트랜잭션 마무리

구매한 아이템을 성공적으로 리뎀션한 후에는 트랜잭션이 구매 대기열에 무기한 남아 있지 않도록 트랜잭션을 제대로 마무리해야 합니다. 성공했거나 실패했는지에 관계없이 트랜잭션을 마무리해야 함에 유의하세요. 트랜잭션을 제대로 마무리하려면 Apple’s finishTransaction(_:) 메서드를 사용해야 합니다.
Apple’s documentation을 통해 finishTransaction(_:)에 대한 자세한 정보를 찾을 수 있습니다.

참고 항목

마지막 수정일 2026년 8월 13일