다음을 통해 공유


PlayFab 및 Apple App Store를 사용하여 앱 내 구매 설정

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

필수 조건

  1. PlayFab 게임 관리자에 있는 타이틀.
  2. 기존에 있던 PlayFab에서 선택한 타이틀과 Apple App Store 간의 통합.
  3. App Store Connect에 액세스합니다.
  4. App Store Connect에서 이미 만든 앱입니다.
  5. App Store Connect에서 내에 만든 앱 내 구매. 앱 내 구매에는 가격 책정지역화가 포함되어야 합니다.
  6. 해당 Transaction Observer가 이미 앱의 일부로 있는 결제 큐.

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

실제 금액을 결제하지 않고 구매를 적절히 테스트하려면 먼저 앱에 테스트 사용자를 만듭니다.

  1. App Store Connect>사용자 및 액세스로 이동합니다.

  2. 샌드박스를 선택합니다.

    샌드박스 탭 옵션

  3. 테스트 계정 옆에 있는 더하기 기호(+) 단추를 선택합니다.

  4. 양식을 채우고 만들기를 선택합니다.

    새 테스트 사용자 양식

2단계: 게임 관리자에서 번들 만들기

참고 항목

게임 관리자에서 번들을 만들기 전에 카탈로그의 번들에 추가하려는 아이템을 이미 만들고 게시했는지 확인합니다. 이 자습서에서는 Super Awesome Sword라는 검을 이미 만들었다고 가정합니다. 아이템을 만드는 방법에 대한 지침이 필요한 경우 이 단계를 참조하세요.

게임 관리자App Store Connect 간에 마켓플레이스 매핑을 활성화하려면 게임 관리자에서 번들을 만들어야 합니다. 번들에는 수량이 다른 여러 아이템이 포함될 수 있으며, 해당 아이템이 상환되면 PlayFab에서 플레이어의 인벤토리에 추가합니다. 게임 관리자에서 새 번들을 만들려면 다음 단계를 따릅니다.

  1. 게임 관리자에서 타이틀로 이동합니다.

  2. 왼쪽 탐색 메뉴에서 참여>경제를 선택합니다.

  3. 번들 탭을 선택합니다.

    번들 탭

  4. 새 번들을 선택합니다.

  5. 아이템, 가격 등 원하는 정보를 번들에 추가합니다. 이 자습서에서는 Super Awesome Sword Bundle을 이름으로 사용합니다.

    번들 옵션

  6. 플레이어가 즉시 상환할 수 있도록 하려면 페이지 끝까지 아래로 스크롤하고 저장 및 게시를 선택합니다. 나중에 게시하려면 "임시 저장"을 선택합니다.

    저장 옵션

번들에 아이템 추가

번들 자체는 플레이어에게 아이템을 부여하지 않습니다. 먼저 아이템을 플레이어에 연결해야 하며, 상환 시 해당 특정 플레이어에게 해당 아이템이 부여됩니다.

번들에 아이템을 추가하려면 다음 단계를 따릅니다.

  1. 편집 모드에서 아이템 섹션으로 이동합니다.
  2. 추가를 선택합니다. 모든 카탈로그 아이템을 보여 주는 창이 나타납니다.
  3. 유형별로 필터링하거나 특정 아이템을 검색할 수 있습니다.
  4. Super Awesome Sword를 찾아 옆에 있는 추가를 선택합니다.
  5. 마지막으로 아래쪽에 있는 추가 단추를 선택합니다.

그러면 번들에 아이템이 추가됩니다.

번들에 아이템 추가

3단계: 마켓플레이스 매핑 사용

플레이어가 앱에서 번들을 구매할 때 게임 관리자에서 올바르게 구매 및 할당이 이루어지도록 하려면 마켓플레이스 매핑을 구성해야 합니다. 게임 관리자에서 번들을 생성하는 동안 또는 번들 생성 후 편집 모드에서 번들로 돌아가서 이 작업을 수행할 수 있습니다.

  1. 편집 모드에서 번들로 이동합니다.
  2. 마켓플레이스 매핑 섹션까지 아래로 스크롤합니다.
  3. 마켓플레이스 드롭다운에서 원하는 마켓플레이스를 선택합니다. 이 자습서에서는 AppleAppStore입니다.
  4. 마켓플레이스 IDApp Store Connect제품 ID와 동일한 ID를 사용해야 합니다. 이 자습서에서는 pf.commerce.ios.sas1을 사용했습니다.
  5. 완료하려면 해당 행의 오른쪽에 있는 +를 선택하고 변경 사항을 저장합니다.

마켓플레이스 매핑

4단계: 구매

이 주제에 대한 자세한 내용은 앱 내 구매를 참조하세요.

앱 내 구매를 구성하는 방법에 대한 개요는 Apple 개발자 문서를 참조하세요.

이제 App Store Connect에서 IAP를 생성하고, 게임 관리자에서 아이템으로 번들을 구성하고, 번들마켓플레이스 매핑을 설정했습니다. 다음으로 에서의 IAP 구매를 살펴보겠습니다.

앱에서 IAP 아이템을 노출하고 구매할 수 있게 되면 1단계에서 만든 테스트 사용자를 사용하여 앱에서 IAP를 구매할 수 있습니다. 이 작업이 완료되면 Apple의 API가 영수증을 반환하는데, 이를 PlayFab의 상환 API와 함께 사용하여 구매를 확인하고 번들의 아이템을 플레이어에게 부여해야 합니다.

5단계: 앱 내 구매 항목 상환

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

두 ID가 일치하는지 확인

상환 호출 전에 게임 관리자에서 마켓플레이스 매핑을 위해 사용한 대체 IDApp Store Connect제품 ID와 일치하는지 확인해야 합니다.

다음 스크린샷은 게임 관리자의 번들 내에서 가져온 것입니다. 마켓플레이스 ID가 여기서 말하는 AlternateId이며, 기본적으로 번들을 식별하는 또 다른 방법입니다.

마켓플레이스 매핑

App Store Connect에서 내 앱으로 이동하여 원하는 앱을 선택한 다음 왼쪽 탐색 메뉴에서 기능>앱 내 구매로 이동하고 마지막으로 IAP를 선택하면 IAP 메타데이터에서 제품 ID가 표시됩니다.

App Store Connect 제품 ID

플레이어 인증

아이템을 상환하려면 RedeemAppleAppStoreInventoryItems를 사용합니다. 하지만 그 전에 아이템을 상환하려는 플레이어가 앱에서 제대로 인증되는지 확인해야 합니다. 이를 위해 LoginWithApple를 사용합니다.

LoginWithApple 호출이 성공하면 PlayFab의 API는 X-EntityToken 키와 함께 RedeemAppleAppStoreInventoryItems 헤더의 일부로 사용해야 하는 EntityToken을 반환합니다. API 플랫폼을 사용하여 테스트하는 경우 다음과 같습니다.

API 플랫폼 헤더 키

상환 호출

플레이어가 인증되고, 두 ID가 일치하는지 확인되며, 플레이어의 앱 구매 영수증도 확인되면 상환을 호출할 준비가 되었습니다. 이를 위해 RedeemAppleAppStoreInventoryItems API 호출을 사용합니다.

{
    "Receipt": "{Your receipt}"
}

상환 호출에는 단일 값만 있으며, 이는 IAP를 성공적으로 구매한 후 Apple에서 반환한 영수증입니다.

성공적인 응답에는 타임스탬프MarketplaceTransactionId와 같은 데이터와 함께 제공되는 200 status code가 있습니다.

성공적인 상환 호출이 실행된 후에는 인증된 플레이어의 인벤토리에서 Super Awesome Sword를 볼 수 있습니다. 이로 인해 플레이어의 트랜잭션 기록에서 해당 이벤트가 트리거됩니다. 이는 게임 관리자의 플레이어 개요 페이지 아래 트랜잭션 기록(V2) 탭에서 검색할 수 있습니다.

플레이어 트랜잭션 기록의 새로운 로그 항목과 함께 items_redeemedPlayStream 이벤트도 트리거되어 기록됩니다. 게임 관리자의 왼쪽 탐색 모음에 있는 분석 섹션 아래의 데이터 페이지로 이동하여 타이틀에 대한 이러한 로그에 액세스할 수 있습니다. 여기에서 쿼리를 편집하여 특정 레코드를 검색하거나 기본 설정으로 실행하여 모든 레코드를 가져올 수 있습니다. 이벤트 이름items_redeemed 아래에서 레코드를 확인할 수 있습니다.

6단계: 트랜잭션 완료

구매한 아이템을 성공적으로 상환한 후에는 트랜잭션이 구매 큐에 무기한 남아 있지 않도록 트랜잭션을 올바르게 완료해야 합니다. 성공 또는 실패 여부에 관계없이 트랜잭션을 완료하는 것이 중요합니다.

트랜잭션을 제대로 완료하려면 ApplefinishTransaction(_:)의 메서드를 사용해야 합니다.

참고 항목

Apple문서finishTransaction(_:)를 통해 에 대한 자세한 내용을 확인할 수 있습니다.

참고 항목