2013년 10월 3일 목요일

[구글인앱]Establishing In-app Billing Products for Sale(판매를 위한 인앱 제품 개설) #3

 던전워즈

Establishing In-app Billing Products for Sale(판매를 위한 인앱 제품 개설)

Before publishing your In-app Billing application, you'll need to define the product list of digital goods available for purchase in the Google Play Developer Console.
인앱빌링 앱 출시전, 당신은 구글플레이 개발자 콘솔에서 이용가능한 디지털 상품의 목록을 설정해야 할것이다.

Specify In-app Products in Google Play(구글플레이에 인앱 제품 상술하기(추가하기))


From the Developer Console, you can define product information for in-app products and associate the product list with your application. 개발자 콘솔로부터, 당신은 앱과 연계된 제품의 목록과 인앱 제품의  정보를 선언할 수 있다.
To add new in-app products to your product list:(제품 목록에 인앱 제품 추가하기)
  1. Build a signed APK file for your In-app Billing application. To learn how to build and sign your APK, seeBuilding Your Application for Release. Make sure that you are using your final (not debug) certificate and private key to sign your application.(서명된 인앱 빌링 애플리케이션을 빌드한다. 어떻게 빌드 및 서명하는지 배우기 위해 Building Your Application for Release을 보라. 애플리케이션을 서명하기 위한 최종의(디버그가아닌) 인증서와 개인키인지 확인한다.)
  2. In the Developer Console, open the application entry that you created earlier.(개발자 콘솔에서, 이전에 생성했던 애플리케이션 시작점을 연다.)
  3. Click on the APK tab then click on Upload new APK. Upload the signed APK file to the Developer Console. Don’t publish the app yet!(APK탭을 클릭하고  APK를 업로드 클릭한다. 서명된 앱을 개발자 콘솔에 업로드 한다. 아직 앱을 게시하지 말라.)
  4. Navigate to the uploaded app listing, and click on In-app Products.(업로드된 앱 목록을 찾아서 인앱 제품 항목을 클릭한다.)
  5. Click on the option to add a new product, then complete the form to specify the product information such as the item’s unique product ID (also called its SKU), description, price, and country availability. Note down the product ID since you might need this information to query purchase details in your application later.(새제품 추가하기 옵션을 클릭하고, 아이템의 유니크제품ID(또한 SKU라 불려진다), 설명, 가격, 이용국가 같은 제품의 정보의 상세를 기록한다/ 제품ID는 이후에 당신의 앱에서 제품의 상세를 조회하기위한 정보로 필요할 것이다.)
  6. Important: The In-app Billing Version 3 service only supports managed in-app products, so make sure that you specify that the purchase type is 'Managed' when you add new items to your product list in the Developer Console.(중요 : 인앱 빌링 버전 3은 오직 관리되는 인앱 제품만 지원한다, 그렇기 때문에 개발자 콘솔에 당신의 새로운 제품목록을 추가할때 구매 타입이 '관리된'타입인지 확인 해야한다.)
  7. Once you have completed the form, activate the product so that your application can purchase it.(당신의 앱에서 그것을 구매하기 하기 위해 제품을 활성하고 형식을 완성시킨다.)
    Warning: It may take up to 2-3 hours after uploading the APK for Google Play to recognize your updated APK version. If you try to test your application before your uploaded APK is recognized by Google Play, your application will receive a ‘purchase cancelled’ response with an error message “This version of the application is not enabled for In-app Billing.”
    경고 : 구글 플레이가 당신의 업데이트된 APK  버전을 확이하기 위해  APK 업로드 후 2 ~ 3시간 정도 필요하다. 구글플레이에서 당신의 앱이 확인도기 전에 앱을 테스트할경우, 당신의 앱은, "이버전의 앱은 인앱빌링이 허가되지않았다는 오류 메시지와 함께 결제 취소를 수신받을 것이다."

Query Items Available for Purchase(구매를 위해 이용 가능 아이템 조회 )


You can query Google Play to programmatically retrieve details of the in-app products that are associated with your application (such as the product’s price, title, description, and type). This is useful, for example, when you want to display a listing of unowned items that are still available for purchase to users.
당신은 앱에 제휴된 인앱 제품의 상세를 구글 플레이로 부터 조회하여 수신할 수 있다(제품의 가격, 타이틀, 설명, 타입등과 같은). 이것은 당신이 유저에게 구매 가능 상태의 아이템 목록을 출력하기를 원할때 유용할 수 있다.
Note: When making the query, you will need to specify the product IDs for the products explicitly. You can manually find the product IDs from the Developer Console by opening the In-app Products tab for your application. The product IDs are listed under the column labeled Name/ID.
주의 : 쿼리를 만들때, 제품을 위한 명시적인 ID를 명기할 필요가 있을것이다. 당신은 개발자 콘솔의 인앱 제품 탭을 열어서 제품의 ID들을 수동으로 찾을 수 있다. 제품의 ID들은 Name/ID 표의 컴럼 아래에 목록화 되어 있다.
To retrieve the product details, call queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) on your IabHelper instance.
제품의 상세를 되찾기 위해서, queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) 메소드를 IabHelper 인스터스에서 호출한다.
  • The first input argument indicates whether product details should be retrieved (should be set to true).
  • The List argument consists of one or more product IDs (also called SKUs) for the products that you want to query.
  • Finally, the QueryInventoryFinishedListener argument specifies a listener is notified when the query operation has completed and handles the query response.
  • 첫번째 입력인자는 제품이 상세 정보를 수신할지를 가르킨다(true로 설정될것이다)
  • 두번째 List 인자는 당신이 조회 하기 원하는 제품들의 하나 이상의 ID들(SKUs라 불리는)로 되어 있다.
  • 마지막으로,QueryInventoryFinishedListener 인자는, 조회 작업이 완료되어 조회 응답을 다룰 수 있을때 통지를 받는 리스너이다.
If you use the convenience classes provided in the sample, the classes will handle background thread management for In-app Billing requests, so you can safely make queries from the main thread of your application.
만일 샘플에서 제공된 편의기능 클래스들을 사용한다면, 클래스들은 백그라운드 쓰레드에서 인앱빌링 요구들을 다룰것이다. 그렇기 때문에 당신은 애플리케이션의 메인쓰레드로 부터 조회들을 안전하게 만들어야 한다.

The following code shows how you can retrieve the details for two products with IDs SKU_APPLE and SKU_BANANAthat you previously defined in the Developer Console.
다음의 코드는 이전에 당신이 개발자 콘슬에 선언했던() SKU_APPLE 과 SKU_BANANA를 ID로 가진 두 제품의 상세를 어떻게 되찾는지 보여준다.
List<string> additionalSkuList = new List<string>();
additionalSkuList.add(SKU_APPLE);
additionalSkuList.add(SKU_BANANA);
mHelper.queryInventoryAsync(true, additionalSkuList,
   mQueryFinishedListener);
</string></string>
If the query is successful, the query results are stored in an Inventory object that is passed back to the listener.
The following code shows how you can retrieve the item prices from the result set.
쿼리가 성공한다면,쿼리의 결과에는 Inventory 오브젝트가 담기고 리스너에 전달될 것이다. 
다음의 코드는 결과 셋으로 부터 어떻게 아이템 가격을 되찾는지 보여준다.
IabHelper.QueryInventoryFinishedListener 
   mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
   public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
   {
      if (result.isFailure()) {
         // handle error
         return;
       }

       String applePrice =
          inventory.getSkuDetails(SKU_APPLE).getPrice();
       String bananaPrice =
          inventory.getSkuDetails(SKU_BANANA).getPrice();

       // update the UI 
   }
}

댓글 없음:

댓글 쓰기