Introduction | Overview of In-App Purchase | Retrieving Product Information | Making a Purchase
Adding a Store to Your Application | Verifying Store Receipts | Testing a Store | Auto-Renewable Subscriptions


본 페이지는 iOS In-App Purchase Programming Guide 문서의 Overview of In-App Purchase 부분을 번역해 놓은 페이지 입니다. 발 번역이라 이상한 부분이 있을 수 있습니다. 발견즉시 댓글을 달아 주세요.




Overview of In-App Purchase
In-App Purchase 개요

Store Kit communicates with the App Store on behalf of your application. Your application uses Store Kit to receive localized information from the App Store about products you want to offer in your application. Your application displays this information to users and allows them to purchase items. When a user wants to purchase an item, your app calls Store Kit to collect payment from the user. Figure 1-1 shows the basic store model.

'Store Kit'은 당신의 앱을 대신해 앱스토어와 통신합니다. 당신의 앱은 'Store Kit'을 이용해 당신의 앱속에서 당신이 제공하기 원하는 제품에 관한 지역화 된 정보를 앱스토어로 부터 받습니다. 당신의 앱은 이 정보를 사용자에게 표시하고 아이템 구매를 허용합니다. 사용자가 아이템 구매를 원할 때, 당신의 앱은 Store Kit을 호출해 사용자로 부터 결제를 받습니다. 도식 1-1은 기본 스토어 모델을 보여줍니다.


Figure 1-1  In-App Store model
In App Store Model

The Store Kit API is only a small part of the process of adding a store to your application. You need to decide how to track the products you plan to deliver, how your application presents a store front to the user, and how your application delivers the products users purchase from your store. The rest of this chapter explains the process of creating products and adding a store to your application.

'Store Kit API'는 당신의 앱에 스토어 추가하기의 작은 부분입니다. 당신은 당신의 계획에 따라 제품 배달 경로, 스토어에서 어떻게 당신의 앱을 제공하고, 어떻게 당신의 앱이 당신의 스토어로 부터 유저 제품 결제를 배달하는지에 대해 결정해야합니다. 이장의 나머지는 제품 생성작업과 당신 앱 속에 스토어를 추가하는 것을 설명합니다.

Products
제품들.

product is any feature that you want to sell in your application’s store. Products are associated with the App Store through iTunes Connect in the same way that you create new applications. There are four supported kinds of products that you may sell using In-App Purchase:

제품은 어떤 당신의 앱 속 스토어에서 판매하기 원하는 형상 입니다. 제품들은 당신이 새앱을 생성했던 것과 같은 방법으로  iTunes Connect를 통해 앱 스토어와 연결됩니다. 인 앱 결제를 이용해 판매하기 원할 때 지원 되는 4가지 종류의 제품 : 

  • Content includes digital books, magazines, photos, artwork, game levels, game characters, and other digital content that can be delivered within your application.
    디지털 책, 매거진, 사진, 아트워크 게임레벨, 게임 케릭터, 그리고 다른 디지털 컨텐츠를 당신의 앱속에 배달될 수 있습니다.

  • Functionality products unlock or expand features you’ve already delivered in your application. For example, you could ship a game with multiple smaller games that could be purchased by the user.
    이미 당신의 앱 속에 포함된 기능적 제품의 해제 또는 특성 확장. 예를 들어, 당신은 사용자의 결제로 게임과 다른 작은 게임들을 발송 할 수 있습니다.

  • Services allow your application to charge users for one-time services, such as voice transcription. Each time the service is used is a separate purchase.
    당신의 앱이 음성인식 같은 1회성 서비스를 위한 사용자 충전을 허용합니다. 서비스를 이용할 때 마다 나눠 결제됨니다.

  • Subscriptions provide access to content or services on an extended basis. For example, your application might offer monthly access to financial information or to an online game portal.
    확장을 통한 컨텐츠나 서비스에 접근하는 구독을 제공합니다. 예를 들어, 당신의 앱이 매달 금융정보나 온라인 게임포털을 제공할 수 있을 것이다.

In-App Purchase provides a general mechanism for creating products, leaving the specifics of how your products are implemented up to you. However, there are few important guidelines to keep in mind as you design your application:
인앱 결제는 일반적인 제품 생성 메커니즘을 제공하고, 제품의 지정을 구현하는 방법을 알려줍니다. 그리고, 이것은 당신이 앱을 설계에서 유지해야할 몇몇 중요한 가이드 라인입니다.

  • You must deliver a digital good or service within your application. Do not use In-App Purchase to sell real-world goods and services.
    당신은 당신의 앱에 디지털 상품 또는 서비스를 배송해야 합니다. 실세계의 상품이나 서비스를 판매하지 마세요.

  • You may not offer items that represent intermediary currency because it is important that users know the specific good or service they are buying.
    사용자가 지정한 상품 또는 서비스를 알고 이것을 구매하는 것이 중요 하므로 아이템에 대한 중간 통화를 표시할 필요가 없을지 모릅니다.

  • Items you offer for purchase may not contain, or relate to, pornography, hate speech, defamation, or gambling (simulated gambling is acceptable).
    당신이 결제를 위해 제공하는 아이템이 포함되지 않거나, 연관되지 않으며, 프로노, 욕설, 명예훼손, 도박은 안됩니다. (시뮬레이션 도박은  허용)

For detailed information about what can be offered using In-App Purchase, consult your licensing agreement.
인앱 결제를 이용해 제공할 수 있는 것에 대한 자세한 정보는, 라이센스 계약을 찾아보세요.

Registering Products with the App Store
앱 스토어에 제품 등록.

Every product you wish to offer in your store must first be registered with the App Store through iTunes Connect. When you register a product, you provide a name, description, and pricing for your product, as well as other metadata used by the App Store and your application.

당신의 스토어에서 제공하기 원하는 모든 제품은 먼저 iTunes Connect를 통해 앱스토어에 등록해야 합니다. 제품을 등록할 때, 제품의 이름, 설명, 책정된 가격, 더하여 당신의 앱스토어와 당신의 앱에서 사용한 메타 데이터를 제공해야합니다.


You identify a particular product using a unique string called a product identifier. When your application uses Store Kit to communicate with the App Store, it uses product identifiers to retrieve the configuration data you provided for the product. Later, when a customer wants to purchase a product, your application identifies the product to be purchased using its product identifier.

당신은 제품 식별자라 불리는 고유한 문자열을 이용해 특정 제품을 식별합니다. 당신의 앱이 'Store Kit'을 이용해 앱스토어와 통신할 때, 제공되는 제품의 제품 식별자로 설정데이터를 찾아 옵니다. 이후, 고객이 제품을 구매하기 원할 때, 당신의 앱은 제품 식별자를 이용해 결제된 제품을 구분합니다.


The App Store supports many types of products:

앱 스토어는 제품의 많은 종류를 지원합니다 : 


  • Consumable products must be purchased each time the user needs that item. For example, one-time services are commonly implemented as consumable products.

    소모적인 제품은 사용자가 필요한 때 마다 결제 해야합니다. 예를 들어, 소모 제품 같은 1회성 서비스는 일반 적으로 구현됩니다.
  • Non-consumable products are purchased only once by a particular user. Once a non-consumable product is purchased, it is provided to all devices associated with that user’s iTunes account. Store Kit provides built-in support to restore non-consumable products on multiple devices.
    비 소모성 제품은 특정 유저가 오직한번 결제합니다. 일단 비소모성 제품은 결제하면, 사용자의 iTunes 계정과 모든 장치가 연관되어 제공합니다. 'Store Kit'은 여러 장치에서 비 소모성 제품을 복원하기 위한 지원이 포함되어 있습니다.

  • Auto-renewable subscriptions are delivered to all of a user’s devices in the same way as non-consumable products. However, auto-renewable subscriptions differ in other ways. When you create an auto-renewable subscription in iTunes Connect, you choose the duration of the subscription. The App Store automatically renews the subscription each time its term expires. If the user chooses to not allow the subscription to be renewed, the user’s access to the subscription is revoked after the subscription expires. Your application is responsible for validating whether a subscription is currently active and can also receive an updated receipt for the most recent transaction.
    구독 갱신은 비 소모제품과 같은 방식으로  유저의 모든 장치에 보냅니다. 그러나, 자동 구독 갱신은 방법이 다릅니다. 당신이 iTunes Connect에서 자동 구독 갱신을 생성할 때, 구독 기간을 선택합니다. 'App Store'는 만기 때 까지 자동적으로 구독 갱신됩니다. 만약 사용자가 자동 갱신을 허가하지 않는다면, 구독이 만료된 후 사용자 액세스가 취소됩니다. 

    응용 프로그램 등록이 현재 활성 상태이며 또한 가장 최근의 트랜잭션에 대한 업데이트 된 영수증을받을 수 있는지 여부를 확인하는 책임이 있습니다.
  • Free subscriptions are a way for you to put free subscription content in Newsstand. Once a user signs up for a free subscription, the content is available on all devices associated with the user’s Apple ID. Free subscriptions do not expire and can only be offered in Newsstand-enabled apps.
    공짜 구독은 Newsstand속 공자 구독을 제공하는 방법입니다. 일단 무료 구독을 위해 사용자가 등록하고, 사용자의 Apple ID와 연관된 모든 장치에 컨텐츠가 활성화 됩니다. 무료 구독은 만기가 없으며 오직 'Newsstand 활성화된' 앱속에서만 할 수 있습니다.

  • Non-renewing subscriptions are a mechanism for creating products with a limited duration. Non-renewing subscriptions differ from auto-renewable subscriptions in a few key ways:
    비갱신 구독은 제한된 기간의 제품을 위한 메커니즘입니다. 비 갱신 구독은 자동 구독과 해결 방법이 다릅니다.

    • The term of the subscription is not declared when you create the product in iTunes Connect; your application is responsible for providing this information to the user. In most cases, you would include the term of the subscription in the description of your product.
      iTunes Connect에서 제품을 생성할 때 구독 기간을 정하지 않습니다.(당신의 앱이 사용자에게 정보 제공을 책임지고 있기 때문입니다.). 몇가지 경우. 당신의 제품 설명에 구독 기간에 관한 설명을 해야 할 것입니다.

    • Non-renewing subscriptions may be purchased multiple times (like a consumable product) and are not automatically renewed by the App Store. You are responsible for implementing the renewal process inside your application. Specifically, your application must recognize when the subscription has expired and prompt the user to purchase the product again.
      비 갱신형 구독은 여러 아이템을 구독했던지 간에 앱스토어를 통해 자동으로 갱신되지 않습니다. 앱에서 갱신 작업구현을 해야 합니다. 구체적으로, 당신의 앱이 구독이 파기되고 사용자가 제품을을 다시 구매하기전을 구분해야합니다.

    • You are required to deliver non-renewing subscriptions to all devices owned by the user. Non-renewing subscriptions are not automatically synchronized to all devices by Store Kit; you must implement this infrastructure yourself. For example, most subscriptions are provided by an external server; your server would need to implement a mechanism to identify users and associate subscription purchases with the user who purchased them.
      당신은 비 갱신형 구독을 사용자 소유의 모든장치에 보내는 것이 필수 입니다. 비 갱신 구독은 Store Kit을 통해 모든 장치에 자동적으로 동기화 되지 않습니다.(스스로 이 인프라를 구축해야합니다.). 예를 들어, 많은 구독은 외부 서버를 통해 제공됩니다. 서버는 사용자 결제와 구독의 연관과 사용자 식별이 구현되어야 합니다.

Detailed information about registering products with the App Store can be found in iTunes Connect Developer Guide.
App Store를 통한 등록의 자세한 정보는 'iTune Connect Developer Guide'에서 찾을 수 있습니다.

Feature Delivery
배달 형태

The delivery mechanism your application uses to provide products to users has significant implications on its design and implementation. There are two basic models you should expect to use to deliver products to users: the built-in model and the server model. In both models, you track the list of products offered in the store and deliver products successfully purchased by users.

응용 프로그램이 사용자에게 제품을 제공하는 데 사용하는 배달 메커니즘설계 및 구현에 큰 영향을 미칠 수있다.내장 된 모델과 서버 모델 : 두 가지 기본 사용자에게 제품을 제공하기 위해 사용할 것으로 예상한다 모델이 있습니다. 두 모델 모두, 당신은 상점에서 제공되는 제품의 목록을 추적하고 성공적으로 사용자가 구입 한 제품을 제공합니다.


Built-in Product Model
제품 포함 모델

In the built-in product model, everything required to deliver products is built in to your application. This model is most often used to unlock functionality in your application. You could also use this model to deliver content provided in your application’s bundle. A key advantage of this model is that your application can promptly deliver products to the customer. Most built-in products should be non-consumable.

내장 된 제품 모델제품을 제공하는 데 필요한 모든 것을 응용 프로그램내장되어 있습니다. 이 모델은 대부분 응용 프로그램의 기능을 잠금 해제하는 데 사용됩니다. 당신은 또한 응용 프로그램의 번들 제공 한 콘텐츠를 제공하기 위해이 모델을 사용할 수 있습니다. 이 모델의 주요 장점은 응용 프로그램 신속하게 고객에게 제품을 제공 할 수 있다는 것입니다. 대부분의 내장 된 제품이 아닌 소모품되어야한다.

To identify products, your application stores the product identifiers in your application’s bundle. Apple recommends using a property list (plist) to track product identifiers for your built-in features. Content-driven applications can use this to add new content without modifying the source for your application.

제품을 식별하려면 응용 프로그램이 응용 프로그램의 번들 제품 식별자를 저장합니다. 애플내장 기능에 대한 제품 식별자를 추적 할 속성 목록 (PLIST)를 사용하는 것이 좋습니다. 내용 기반 응용 프로그램은 응용 프로그램의 소스를 수정하지 않고 새로운 내용을 추가 할 수 있습니다.


After a product is successfully purchased, your application must unlock the feature and deliver it to the user. The simplest way to unlock features is by changing your application preferences. See “Implementing Application Preferences”. Application preferences are backed up when users backs up their iOS-based devices. Your application may want to recommend to users that they back up their devices after making a purchase to ensure that purchases are not lost.

제품이 성공적으로 구매 한 후, 응용 프로그램 기능의 잠금을 해제하고 사용자에게 제공해야합니다. 기능의 잠금을 해제하는 가장 간단한 방법은 응용 프로그램기본 설정을 변경하는 것입니다. "응용 프로그램 환경구현"을 참조하십시오. 사용자가 자신의 IOS 기반 장치를 백업 할 때 응용 프로그램 기본 설정이 백업됩니다. 응용 프로그램은 그들이 구매가 손실되지 않도록 구입 한 후 해당 장치를 백업 할 것을 사용자에게 추천 할 수 있습니다.


Figure 1-2 shows the series of actions your application takes to deliver a built-in product.

Figure 1-2  Built-in product delivery
A Store Entirely Implemented on the iPhone

Server Product Model

In the server product model, you provide a separate server that delivers products to your application. Server delivery is appropriate for subscriptions, services and content, because these products can be delivered as data without altering your application bundle. For example, a game might deliver new play environments (puzzles or levels) to the application. Store Kit does not define the design of your server or its interactions with your application. You are responsible for designing all interactions between your application and your server. Further, Store Kit does not provide a mechanism to identify a particular user. Your design may require you to provide a mechanism to identify a user. If your application requires these (for example, to track which subscriptions are associated with a particular user), you need to design and implement this yourself.

서버 제품 모델에서는 응용 프로그램에 제품을 제공하는 별도의 서버를 제공합니다. 이 제품응용 프로그램 번들을 변경하지 않고 데이터로 전달 될 수 있기 때문에 서버 배달, 구독, 서비스 및 콘텐츠에 적합합니다. 예를 들어, 게임 응용 프로그램에 새로운 놀이 환경 (퍼즐 또는 수준)를 제공 할 수 있습니다. 스토어 키트서버 또는 응용 프로그램과의 상호 작용의 디자인을 정의하지 않습니다. 당신은 응용 프로그램과 서버 사이의 모든 상호 작용을 설계 할 책임이 있습니다. 또한, 스토어 키트는 특정 사용자를 식별하는 메커니즘을 제공하지 않습니다. 당신의 디자인은 사용자를 식별하는 메커니즘을 제공해야 할 수 있습니다. 응용 프로그램 (예를 들어, 구독이 특정 사용자와 연관된 추적하기 위해) 필요한 경우, 당신은 자신설계하고이를 구현해야합니다.

Figure 1-3 expands the built-in model to show interactions with a server.

Figure 1-3  Server product delivery
Server Based Store Model

Apple recommends you retrieve product identifiers from your server, rather than including them in a property list. This gives you the flexibility to add new products without updating your application.

Apple은 오히려 속성 목록에서 그들을 포함하여보다 서버에서 제품 ID를 검색하는 것이 좋습니다. 이렇게하면 응용 프로그램을 업데이트하지 않고 새로운 제품을 추가 할 수있는 유연성을 제공합니다.


In the server model, your application retrieves the signed receipt associated with a transaction and sends it to your server. Your server can then validate the receipt and decode it to determine which content to deliver to your application. This process is covered in detail in “Verifying Store Receipts.”

서버 모델에서는 응용 프로그램이 트랜잭션과 관련된 서명 영수증을 검색하고 서버로 보냅니다. 서버영수증을 확인하고 응용 프로그램에 제공 컨텐츠를 결정하기 위해 그것을 해독 할 수 있습니다. 이 과정에서 자세히 다룹니다 "상점 영수증 확인."


The server model has additional security and reliability concerns. You should test the entire environment for security threats. Secure Coding Guide provides additional recommendations.

서버 모델은 추가 보안 및 안정성 문제를 가지고 있습니다. 당신은 보안 위협에 대해 전체 환경 테스트해야합니다. 보안 코딩 가이드 추가 권장 사항을 제공합니다.


Although non-consumable products may be recovered using the built-in capabilities of Store Kit, non-renewing subscriptions must be restored by your server. You are responsible for recording information about non-renewing subscriptions and restoring them to users. Optionally, consumable products could also be tracked by your server. For example, if your consumable product is a service provided by your server, you may want the user to retrieve the results of that request on multiple devices.

소모품 제품은 내장 된 저장 장비 기능, 비 갱신 구독 서버복원해야합니다사용하여 복구 할 수 있지만. 당신은 구독을 갱신하고 사용자에게 복원에 대한 정보를 기록 할 책임이 있습니다. 선택적으로, 소모품 제품은 또한 서버에서 추적 할 수 있습니다. 당신 소모품 제품이 서버에서 제공하는 서비스입니다 예를 들어, 사용자가 여러 장치에서 해당 요청의 결과를 검색 할 수 있습니다.

Posted by 창업자닉군
,