작성자: Caren Chang (Android Engineer)
이 글의 원문은 여기서 확인 가능하며, 블로그 리뷰에는 양찬석(Google)님이 참여해주셨습니다.
Android 11 출시의 일부로 Google Play팀에서는 정기 결제 사용자를 확보하고 유지하기 위한 새로운 기능을 발표했습니다. 이러한 노력의 일환으로 Google Play팀에서는 일부 정기 결제 기능의 기본 설정을 변경할 예정입니다. 이번 게시물에서는 이러한 변경사항과 앱을 준비하는 방법을 살펴봅니다.
먼저 2020년 11월 1일부터 적용되는 변경사항을 알아보겠습니다.
기능
현재 상태
11월 1일부터 변경되는 사항
계정 보류(Account hold)
선택적 기본값: 사용 안함
필수: 앱에서 이 기능을 지원해야 함
복원(Restore)
선택적 기본값: 사용
일시 중지(Pause)
*정기 결제 재신청*
(Resubscribe)
게시글의 나머지 부분에서는 이러한 각 변경사항이 앱이나 게임에 어떤 영향을 미치는지 알아봅니다. 다음의 두 가지 시나리오를 토대로 각 기능이 앱에 미치는 영향을 살펴보겠습니다. 1) 앱에서 백엔드 서버를 사용하여 정기 결제 상태를 추적하지 않을 경우 2) 앱의 백엔드 서버가 실시간 개발자 알림을 이용하여 정기 결제 상태도 추적할 경우
기능 설명: 사용자가 정기 결제를 갱신하려고 하지만 결제 문제로 실패했을 때 사용자를 계정 보류 상태로 전환합니다. 이 기간은 최대 30일간 지속되고 이 기간에 사용자는 정기 결제에 액세스할 수 없습니다.
앱에서 백엔드 서버로 정기 결제 상태를 추적하지 않는 경우: 앱에서 queryPurchases()의 결과를 토대로 정기 결제의 최신 상태를 가져온다면 계정 보류를 지원하기 위해 어떤 추가 작업도 할 필요가 없습니다. BillingClient.queryPurchases()는 계정 보류 기간인 경우 정기 결제를 반환하지 않습니다. 사용자가 결제 수단을 수정하면 정기 결제가 queryPurchases()의 일부로 다시 반환됩니다.
앱의 백엔드 서버가 RTDN을 사용하여 정기 결제 상태를 추적하는 경우: 사용자의 계정 보류 기간이 시작되면 SUBSCRIPTION_ON_HOLD 알림이 전송됩니다. 사용자가 결제 문제를 해결하고 다시 성공적으로 정기 결제를 신청하게 되면 SUBSCRIPTION_RECOVERED 알림이 전송됩니다. 백엔드에서 이러한 알림을 처리하여 사용자의 최신 정기 결제 상태를 확인해야 합니다.
계정 보류와 이 상태를 올바르게 처리하는 방법을 자세히 알아보려면 공식 문서를 참고하세요.
계정 복원(Restore)
기능 설명: 사용자는 현재 결제 기간에 정기 결제가 만료되기 전에 정기 결제 갱신을 취소할 수 있습니다. 계정 복원이 사용 설정되면 사용자는 Play 스토어 앱에서 정기 결제 재신청 옵션을 탭하여 취소된 정기 결제가 만료되기 전에 복원할 수 있습니다. 이렇게 하면 사용자가 정기 결제를 취소한 적이 없는 것처럼 정기 결제가 복원됩니다. 정기 결제가 만료된 경우 사용자는 정기 결제를 재신청해야 합니다.
앱에서 백엔드 서버로 정기 결제 상태를 추적하지 않는 경우: 앱에서 queryPurchases()의 결과에 의존하여 정기 결제의 최신 상태를 가져온다면 계정 복원을 지원하기 위해 어떤 추가 작업도 할 필요가 없습니다. BillingClient.queryPurchases()는 사용자가 다음 결제 기간 전에 정기 결제를 일찍 취소했더라도 정기 결제가 만료될 때까지 정기 결제를 계속 반환합니다.
앱의 백엔드 서버가 RTDN을 사용하여 정기 결제 상태를 추적하는 경우: 사용자가 정기 결제를 복원하면 SUBSCRIPTION_RESTARTED 알림이 전송됩니다. 앱에서 정기 결제가 곧 만료된다고 사용자에게 알리는 UI를 표시하는 경우, 백엔드에서 이 알림을 수신하면 UI 업데이트를 처리해야 합니다.
계정 복원과 이 상태를 올바르게 처리하는 방법은 이 문서에서 자세히 알아보세요.
계정 일시중지(Pause)
기능 설명: 사용자는 일주일에서 3개월까지 정기 결제를 일시중지할 수 있습니다. 정기 결제 일시중지는 현재 결제 기간이 종료된 후에 적용됩니다. 정기 결제가 일시중지되면 사용자는 정기 결제 기능에 액세스할 수 없어야 합니다. 일시중지된 정기 결제는 queryPurchases()에서 반환되지 않습니다.
계정 일시중지는 현재 Play Console에서 기본적으로 사용 설정되어 있지 않지만 2020년 11월 1일부터 자동으로 사용 설정됩니다. 아직 앱에서 이 날짜까지 계정 일시중지를 처리할 준비가 되지 않았다면 Play Console에서 수동으로 이 기능을 사용 중지하세요.
앱에서 백엔드 서버로 정기 결제 상태를 추적하지 않는 경우: 앱에서 queryPurchases()의 결과를 토대로 정기 결제의 최신 상태를 가져온다면 어떤 추가 작업도 할 필요가 없습니다. BillingClient.queryPurchases()는 일시중지된 정기 결제를 반환하지 않습니다.
앱의 백엔드 서버가 RTDN을 사용하여 정기 결제 상태를 추적하는 경우: 사용자가 정기 결제 일시중지를 시작하면 SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED 알림이 전송됩니다. 이때 정기 결제는 현재 결제 기간이 종료될 때까지 계속 유효하며 활성 상태로 유지됩니다. 정기 결제가 일시중지 상태에 들어가면 SUBSCRIPTION_PAUSED 알림이 전송됩니다. 정기 결제가 자동으로 재개되거나 사용자가 수동으로 정기 결제를 재개하는 경우 SUBSCRIPTION_RENEWED 알림이 전송됩니다.
계정 일시중지와 이 상태를 올바르게 처리하는 방법을 자세히 알아보려면 이 문서를 참고하세요.
정기 결제 재신청(Resubscribe)
기능 설명: 정기 결제 재신청 기능을 사용 설정하면 정기 결제가 비활성화된 후 최대 1년 이내에 사용자가 동일한 정기 결제를 다시 구매할 수 있습니다. 또한, 정기 결제가 종료되기 전에 다시 정기 결제를 구매할 수도 있습니다.
정기 결제 재신청 기능은 현재 Play Console에서 기본적으로 사용 설정되어 있지 않지만 2020년 11월 1일부터 자동으로 사용 설정됩니다. 아직 앱에서 이 날짜까지 정기 결제 재신청을 처리할 준비가 되지 않았다면 Play Console에서 수동으로 이 기능을 사용 중지하세요.
앱에서 백엔드 서버로 정기 결제 상태를 추적하지 않는 경우: 앱에서 queryPurchases()의 결과에 의존하여 정기 결제의 최신 상태를 가져온다면 어떤 추가 작업도 할 필요가 없습니다. BillingClient.queryPurchases()는 정기 결제가 만료될 때까지 정기 결제를 계속 반환합니다.
앱에 있는 백엔드 서버가 RTDN을 사용하여 정기 결제 상태를 추적하는 경우: 사용자가 정기 결제를 다시 신청하면 SUBSCRIPTION_RESTARTED 알림이 전송됩니다. 이 알림이 수신되면 앱에서 사용자의 정기 결제 기능 액세스 권한을 복원하는 작업을 처리해야 합니다.
정기 결제 재신청과 이 상태를 올바르게 처리하는 방법을 자세히 알아보려면 이 문서를 참고하시기 바랍니다.
이러한 정기 결제 기능 변경사항은 2020년 11월 1일부터 적용되므로, 앱이 준비되어 있는지 다시 한번 확인 부탁드립니다.