Zarządzanie subskrypcjami i jednorazowymi zakupami

W ramach codziennej działalności możesz wykonywać działania związane z zarządzaniem subskrypcjami lub zakupami jednorazowymi. Na przykład dział obsługi klienta może potrzebować przyznawać użytkownikom pełne lub częściowe zwroty środków albo w określonych przypadkach cofać uprawnienia. Zamówieniami możesz zarządzać w Konsoli Play. Jeśli chcesz zarządzać nimi we własnym systemie, możesz to zrobić za pomocą interfejsu Google Play Developer API.

Anulowanie subskrypcji

Anulowanie subskrypcji może być inicjowane przez użytkowników lub deweloperów.

Anulowanie zainicjowane przez użytkownika

Użytkownicy mogą w każdej chwili anulować subskrypcję w Google Play za pomocą Sklepu Play. W stosownych przypadkach musisz też udostępnić użytkownikom opcję anulowania subskrypcji w aplikacji i na stronie internetowej.

Najłatwiejszym sposobem umożliwienia użytkownikom dobrowolnego anulowania subskrypcji jest udostępnienie w aplikacji linków bezpośrednich do Sklepu Play, w którym mogą oni wyświetlać subskrypcje i nimi zarządzać.

Anulowanie zainicjowane przez dewelopera

Jako deweloper możesz też musieć wywoływać anulowania z poziomu backendu. Interfejs purchases.subscriptions.cancel API umożliwia anulowanie zakupu subskrypcji. Możesz na przykład użyć tej metody, aby wyłączyć starszą usługę. Anulowanie subskrypcji nie powoduje zwrotu środków, a użytkownik zachowuje dostęp do końca bieżącego okresu rozliczeniowego.

Ta metoda umożliwia określenie w parametrze treści żądania cancellationType tych typów anulowania:

  • USER_REQUESTED_STOP_RENEWALS: anuluje subskrypcję tak, jakby użytkownicy anulowali ją w Sklepie Play. Wszystkie płatności ratalne będą nadal pobierane przez pozostały okres zobowiązania. Użytkownicy mogą przywrócić subskrypcję w Sklepie Play przed jej wygaśnięciem lub ponownie ją wykupić po wygaśnięciu, jeśli jest to możliwe w przypadku abonamentu podstawowego.

  • DEVELOPER_REQUESTED_STOP_PAYMENTS: anuluje subskrypcję i uniemożliwia dalsze płatności. Użytkownicy nie mogą przywrócić ani ponownie wykupić subskrypcji w Sklepie Play, ale możesz im umożliwić ponowne wykupienie subskrypcji w aplikacji.

Umożliwianie użytkownikom przywracania niewygasłych subskrypcji

W niektórych przypadkach może być przydatne umożliwienie użytkownikom przywracania niewygasłych subskrypcji w centrum subskrypcji Google Play po tym, jak deweloper zainicjuje anulowanie. Możesz na przykład udostępnić niestandardowy proces anulowania w aplikacji. Na podstawie logiki biznesowej możesz określić, które anulowania zainicjowane w backendzie mogą zostać przywrócone przez użytkowników.

Aby wskazać, że użytkownik może przywrócić anulowanie, wyślij żądanie POST do interfejsu purchases.subscriptions.cancel API i ustaw parametr żądania cancellationType na wartość USER_REQUESTED_STOP_RENEWALS.

Przykład:

  • Token zakupu subskrypcji 1a2b3c4d5e6f7g8h9i0j
  • Nazwa pakietu aplikacji com.your.app
  • Identyfikator subskrypcji your-subscription-product

Żądanie POST w protokole HTTP:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel

Treść żądania:

{
  "cancellationType": "USER_REQUESTED_STOP_RENEWALS"
}

Umożliwianie użytkownikom ponownego subskrybowania wygasłych subskrypcji

Aby umożliwić ponowną subskrypcję wygasłej subskrypcji, musisz włączyć opcję Ponowna subskrypcja w abonamencie podstawowym subskrypcji, a następnie anulować subskrypcję, ustawiając parametr cancellationType na wartość USER_REQUESTED_STOP_RENEWALS.

Umożliwianie użytkownikom ponownej subskrypcji tylko w aplikacji

Jeśli parametr cancellationType ma wartość DEVELOPER_REQUESTED_STOP_PAYMENTS lub nie został ustawionycancellationType, użytkownicy nie mogą przywrócić subskrypcji w centrum subskrypcji w Google Play. W razie potrzeby użytkownicy mogą ponownie zasubskrybować usługę w Twojej aplikacji.

To działanie wywoła SUBSCRIPTION_CANCELEDpowiadomienie w czasie rzeczywistym dla deweloperów. Postępuj zgodnie z instrukcjami podanymi w sekcji Anulowanie.

Odroczenie płatności

Możesz przedłużyć okres uprawnień do subskrypcji, korzystając z metody subscriptionsv2.defer. Gdy odroczysz subskrypcję z dodatkami, wszystkie elementy subskrypcji zostaną odroczone o ten sam czas. W tym okresie użytkownik nadal będzie subskrybować Twoje treści, ale nie będzie obciążany opłatą za dodatkowy czas. Gdy odroczysz płatność za subskrypcję, informacje o stanie zostaną odpowiednio zaktualizowane i będą widoczne w polu expiryTime w informacjach o stanie zakupu:

  • W przypadku aktywnych subskrypcji cyklicznych odroczone płatności wydłużają datę kolejnego odnowienia.
  • W przypadku abonamentów przedpłaconych odroczone rozliczenie wydłuża czas ważności.

Oto kilka przykładów zastosowania odroczonych płatności:

  • Udostępnij użytkownikom bezpłatny dostęp w ramach oferty specjalnej, np. przyznaj obecnym subskrybentom tydzień bezpłatnego dostępu za wypełnienie ankiety dotyczącej opinii.
  • Zapewnij klientom bezpłatny dostęp w ramach działań związanych z obsługą klienta, np. po dłuższej awarii, która mogła wpłynąć na ich możliwość korzystania z usługi.

Rozliczenie można odroczyć o co najmniej 1 dzień i maksymalnie o rok w przypadku każdego wywołania interfejsu API. Aby jeszcze bardziej odroczyć zakończenie uprawnień, ponownie wywołaj interfejs API przed upływem nowej daty ważności.

To działanie wywoła SUBSCRIPTION_DEFERREDpowiadomienie w czasie rzeczywistym dla deweloperów. Więcej informacji o obsłudze tych zdarzeń znajdziesz w artykule Odroczenie płatności za subskrypcję w sekcji Informacje o subskrypcjach.

Przykład:

  1. Usługa streamingowa FitnessGoals chce w lutym przeprowadzić promocję, która zachęci użytkowników do regularnych ćwiczeń.

  2. Firma postanawia zaoferować dodatkowy miesiąc usługi każdemu subskrybentowi, który w lutym skorzysta z FitnessGoals co najmniej 10 razy.

  3. Śledzą wyniki wyzwania, a 1 marca wywołują metodę subscriptionsv2.defer w przypadku każdego zakupu aktywnej subskrypcji należącej do użytkowników, którzy w lutym spełnili warunki wyzwania.

  4. Użytkownicy ci mogą korzystać z dodatkowego miesiąca filmów z ćwiczeniami bez żadnych opłat, a także opowiadają znajomym, jak FitnessGoals pomaga im dbać o zdrowie.

Wydawanie zwrotów środków i unieważnianie

W wielu sytuacjach możesz chcieć przyznać zwrot środków za subskrypcję lub zakup jednorazowy albo cofnąć dostęp do nich.

Pełny zwrot środków za zamówienie według identyfikatora zamówienia

Za pomocą interfejsu orders.refund możesz przyznawać pełne zwroty środków za dowolne zamówienie w ciągu 3 lat od zakupu. Metoda orders.refund otrzymuje parametr revoke wskazujący, czy oprócz zwrotu środków należy cofnąć dostęp.

Jeśli wyślesz żądanie unieważnienia wraz z wywołaniem zwrotu środków za zakup subskrypcji, subskrypcja zostanie natychmiast zakończona i wygeneruje SUBSCRIPTION_REVOKED powiadomienie w czasie rzeczywistym dla deweloperów. Więcej informacji o obsłudze tych zdarzeń znajdziesz w sekcji dotyczącej wycofywania w przewodniku po zarządzaniu cyklem życia subskrypcji.

Przykład:

  1. Z okazji rozpoczęcia nowych mistrzostw świata aplikacja e-sportowa Football-Not-Soccer postanawia rozlosować bezpłatne wirtualne koszulki dla wszystkich użytkowników, którzy w ciągu pierwszych 24 godzin kupią nowe zestawy drużynowe.

  2. Aplikacja Football-Not-Soccer korzysta z interfejsu orders.refund API bez przekazywania parametru unieważnienia, aby zwrócić środki za zakup koszulek zwycięzcom.

Unieważnianie subskrypcji i zwrot środków za nią na podstawie tokena zakupu

W niektórych przypadkach może być konieczne cofnięcie dostępu do subskrypcji użytkownika i przyznanie mu zwrotu środków. Płatności w Play oferują metody wycofania, w tym pełne i proporcjonalne zwroty środków, za pomocą interfejsu API subscriptionsv2.revoke. W tym punkcie końcowym możesz określić revocationContext, aby ustalić sposób obliczania zwrotu środków.

Wykonanie tej czynności spowoduje wysłanie SUBSCRIPTION_REVOKEDpowiadomienia w czasie rzeczywistym dla deweloperów. Aplikacja powinna obsługiwać te anulowania w sposób opisany w sekcji Cofnięcia.

Przykład:

  • Zakup za pomocą tokena zakupu 1a2b3c4d5e6f7g8h9i0j
  • Aplikacja o nazwie pakietu com.your.app
  • Zamiar przyznania proporcjonalnego zwrotu środków

Żądanie POST w protokole HTTP:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Treść żądania:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Pełne zwroty środków

Jeśli chcesz zakończyć subskrypcję i zwrócić pełną kwotę za bieżący okres rozliczeniowy, przyznaj pełny zwrot środków. Użyj funkcji purchases.subscriptionsv2.revoke i ustaw "fullRefund": {} jako typ zwrotu środków.

Przykład:

  1. Maria ma automatycznie odnawianą 30-dniową subskrypcję miesięczną usługi streamingowej SuperMovies. Maria napotkała problemy techniczne, które uniemożliwiają jej dostęp do treści. W 3 dniu cyklu rozliczeniowego kontaktuje się z obsługą klienta i informuje, że nie uzyskała dostępu do subskrypcji.

  2. Dział obsługi klienta znajduje w swoim systemie szczegóły zakupu subskrypcji przez Marię i wysyła do purchases.subscriptionsv2.revoke prośbę o pełny zwrot środków.

  3. Dział obsługi klienta informuje Marię, że powinna otrzymać zwrot 100% ceny subskrypcji i nie ma już subskrypcji tego abonamentu.

Proporcjonalny zwrot środków

Jeśli chcesz zakończyć subskrypcję i częściowo zwrócić środki za pozostały czas subskrypcji, przyznaj proporcjonalny zwrot środków. Użyj funkcji purchases.subscriptionsv2.revoke i ustaw "proratedRefund": {} jako typ zwrotu środków.

Proporcjonalne zwroty środków są obsługiwane w przypadku automatycznie odnawianych subskrypcji i abonamentów przedpłaconych trwających co najmniej tydzień.

Przykład:

  1. Maria ma automatycznie odnawianą 30-dniową subskrypcję miesięczną usługi streamingowej SuperMovies. Od jakiegoś czasu korzysta z tej usługi. Maria kontaktuje się z obsługą klienta 15 dnia cyklu rozliczeniowego i informuje, że przeprowadza się za granicę i od następnego dnia nie będzie już mogła korzystać z usługi.

  2. Dział obsługi klienta znajduje w swoim systemie szczegóły zakupu subskrypcji przez Marię i wysyła do purchases.subscriptionsv2.revoke prośbę o proporcjonalny zwrot środków.

  3. Dział obsługi klienta informuje Marię, że powinna otrzymać zwrot około 50% ceny subskrypcji, a dostęp do usługi zostanie natychmiast zakończony.