페이지

2013년 6월 15일 토요일

구매 상태 API(Purchase Status API)


Google Play는 HTTP 기반의 구매 상태 API를 제공하여 여러분들이 원격에서 특정 인앱 제품이나 구독 상태를 확인할 수 있게 해줍니다. 이 API는 인앱 제품과 구독을 안전하게 관리하는 것 뿐만 아니라 다른 서비스들과 이것을 확장하고 통합하는 방법으로써 백엔드(backend) 서버에서 사용하도록 설계되었습니다.

개요

구매 상태 API를 사용해서 여러분은 표준 GET 요청을 사용하여 어떠한 구매 내역도 빠르게 확인할 수 있습니다. 이 요청에 여러분은 구매에 대한 정보를 제공합니다. - 앱 패키지 이름, 구매 또는 구독 ID, 구매 토큰. 서비는 관련된 구매 정보, 주문 상태, 개발자 Paylod, 그리고 다른 정보들을 JSON 객체로 응답합니다.

여러분은 구매 상태 API를 여러 가지 방법으로 사용할 수 있는데, 예를 들면 보고 내용과 개별 주문의 일치, 그리고 구매와 구독의 기간 만료 검사 등에 사용할 수 있습니다. 여러분은 또한 취소된 주문에 대한 것을 알기 위해, 그리고 인앱 제품이 취소되기 전에 소비되었는지 여부를 포함해서 인앱 제품이 소비되었는지를 확인하기 위해 이 API를 사용할 수 있습니다.

구독을 위해, 주문 상태와 만료 상태에 대한 쿼리에 더해서, 여러분은 구복을 원격에서 취소하기 위해 구매 상태 API를 사용할 수 있습니다. 이것은 고객들 스스로 안드로이드 기기에서 구매 취소를 관리하라고 요구하지 않고도 구매 취소를 관리하는 편리한 방법입니다.

만약 구매 상태 API를 사용할 계획이라면 다음 항목을 명심해야 합니다:

  • 여러분은 개별 아이템의 상태를 확인할 때에만 이 API를 사용할 수 있습니다 - 주문 상태에 대한 묶음 요청은 현재 지원되지 않습니다.
  • 여러분은 2013년 6월 12일 이후의 주문에 대해서만 확인할 수 있습니다. 이전 주문은 안 됩니다.
  • 여러분은 인앱 결제 v3 API로 구매된 모든 아이템 또는 인앱 결제 v1과 v2로 구매한 managed item에 대해서만 확인할 수 있습니다. 인앱 결제 v1 또는 v2로 구매한 unmanaged item에 대해서는 구매 상태 API를 사용할 수 없습니다.

구매 상태 API는 Google Play Android Developer API v1.1의 일부이고 Google APIs console를 통해 사용 가능합니다. 새로운 버전의 API는 v1 API를 대체하고 v1은 deplrecated됩니다. 만약 여러분이 v1 API를 사용하고 있다면 가능한 삘리 v1.1 API로 옮기시기 바랍니다.

API 사용

API를 사용라기 위해서 여러분은 먼저 Google APIs Console에 프로젝트를 등록하고 이 API를 호출할 때 당신의 앱이 제시할 Client ID와 Shared Secret을 받아야 합니다.

당신의 앱이 등록되면, 당신은 표준 HTTP 메소드를 사용해서 리소스를 가져오고 조작하기 위해서 API에 직접 접근할 수 있습니다. 이 API는 HTTP와 JSON을 사용하는 RESTful 설계로 만들어져있습니다. 그래서 어떠한 표준 웹 스택으로도 요청을 보내고 응답을 처리할 수 있습니다. 그러나 만약 여러분이 HTTP 요청을 보내고 응답을 처리하는 것을 직접 하고 싶지 않다면 Google APIs Client Libraries를 사용해서 API에 접근할 수 있습니다. 이것은 더 나은 언어 통합, 향상된 보안, 사용자 인증이 필요한 호출 지원 등을 제공합니다.

이 API와 Google APIs Client Libraries를 통한 접근법에 대해 더 많은 정보를 알고 싶다면 다음 문서를 참조하시기 바랍니다:

사용 한도

Google Play Android Developer API를 사용하는 애플리케이션은 초기에 하루 15000개의 요청을 무료로 사용하도록 제한됩니다. 이 제한은 이 절에서 추천하는 방식을 따른다고 가정할 때 일반적인 구독 확인을 위해 충분한 양을 제공할 것입니다.

만약 여러분이 애플리케이션을 위해 더 높은 제한값을 요청할 필요가 있다면 Google APIs Console의 “Request more” 링크를 사용해주시기 바랍니다. 또한 이 절의 아래에 API 사용을 최소로 하기 위한 설계의 모범 사례가 있으니 참조하기 바랍니다.

인증

Google Play Android Developer API를 호출하는 것은 인증을 요구합니다. Google은 OAuth 2.0 프로토콜을 사용해서 인증된 애플리케이션이 사용자 데이터에 접근할 수 있게 해줍니다. 더 많은 것을 알려면 Google Play Android Developer API 문서에 있는 Authorization을 참조하기 바랍니다.

구매 확인 전략

전형적인 시나리오에서 여러분의 앱은 구매한 컨텐츠에 접근을 허용하기 전에 구매가 유효한지 확인하기 위해서 새로운 구매에 대한 주문 상태를 검사합니다.

구매를 확인하기 위해, 앱은 구매 토큰과 다른 상세 정보를 백엔드 서버로 넘기는데, 백엔드 서버는 구매 상태 API를 사용해서 Google Play에 직접 구매 정보를 검사합니다. 보안때문에 앱은 일반적으로는 구매 상태 API를 스스로 사용해서 구매를 확인하는 시도는 하지 않아야 합니다.

만약 백엔드 서버에서 구매가 유효한지 결정하면, 서버는 앱에게 통보하고 컨텐츠에 대한 접근을 허용합니다. 퍼포먼스 향상을 위해, 백엔드 서버는 주기적으로 또는 필요에 따라 구매 정보와 주문 상태를 업데이트하여 로컬 데이터베이스에 저장해야 합니다.

사용자들은 네트워크 연결이 안 될 때에도 언제든 앱을 사용하길 원한다는 것을 명심해야 합니다. 구매 확인에 대한 접근은 오프라인 유스케이스도 고려해야 합니다.

효율적인 API 사용

Google Play Android Developer API에 대한 접근은 이것을 사용하는 모든 애플리케이션에 높은 퍼포먼스 환경을 책임질 수 있도록 돕기 위해서 제한됩니다. 여러분이 하루 사용 한도를 더 높여달라고 요청할 수 있지만 우리는 아래의 기법을 사용해서 API 접근을 최소화하길 강력히 추천합니다.

새로운 구매에 대해서만 구매 상태 API 요청하기 - 구매가 있으면, 여러분의 앱은 구매 토큰과 다른 정보들을 백엔드 서버에 넘길 수 있는데, 이것은 구매를 확인하기 위해 구매 상태 API를 사용할 수 있습니다.
서버에서 구매 정보 캐시 - 가능한 범위까지 인앱 제품과 구독에 대한 구매 정보를 서버에 캐시해야 합니다. 만약 여러분의 앱이 구매 유효성을 확인하기 위해 실행 시점에 백엔드 서버에 접근한다면 여러분의 서버는 캐시된 정보를 기반으로 구매를 확인할 수 있습니다. 이것은 구매 상태 API 사용을 최소화하고 사용자들에게 가능한 빠른 응답(그리고 최상의 경험)을 제공하게 됩니다.
구매 만기일을 서버에 저장 - 여러분의 서버는 새로운 구독 토큰에 대한 만기일을 확인하기 위해 구매 상태 API를 사용하고 만기일을 로컬에 저장해야 합니다. 이것은 여러분이 구독 상태를 만기일에 또는 만기일 후에 확인할 수 있게 해줍니다(아래 항목을 참조)
만기일에 대한 구독 상태 확인 - 여러분의 서버가 구독 토큰의 만기일을 검색했을 때 이것은 구독이 만기일에 도래했거나 지날때까지 구독 상태에 대해 Google Play에 확인하지 않아야 합니다. 일반적으로 여러분의 서버는 하루에 한 번 구독 만기 상태를 확인해서 데이터베이스를 갱신할 것입니다. 다음 사항을 주목하세요:
여러분의 서버는 모든 구독에 대해서 매일 확인하지 않아야 합니다.
여러분의 서버는 절대로 안드로이드 애플리케이션의 개별 요청에 따라 구독 상태를 동적으로 확인하지 않아야 합니다.

이러한 일반적인 가이드라인에 의해 여러분은 사용자들에게 최상의 퍼포먼스를 제공하고 Google Play Android Developer API의 사용을 최소화할 것입니다.

댓글 없음:

댓글 쓰기