W ramach codziennej działalności możesz podejmować działania związane z zarządzaniem subskrypcjami lub zakupami jednorazowymi. Na przykład dział obsługi klienta może potrzebować przyznawania użytkownikom pełnych lub częściowych zwrotów środków, a w niektórych przypadkach może być konieczne cofnięcie uprawnień. 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 zostać zainicjowane przez użytkowników lub deweloperów.
Anulowanie zainicjowane przez użytkownika
Użytkownicy mogą w każdej chwili anulować subskrypcję Google Play w Sklepie 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 precyzyjnych linków 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żytkownik anulował ją w Sklepie Play. Wszelkie płatności ratalne będą kontynuowane przez pozostałą część bieżącego okresu zobowiązania. Użytkownicy mogą przywrócić subskrypcję w Sklepie Play przed jej wygaśnięciem lub ponownie ją zasubskrybować po wygaśnięciu, jeśli jest to możliwe w przypadku abonamentu podstawowego.
DEVELOPER_REQUESTED_STOP_PAYMENTS: anuluje subskrypcję i uniemożliwia dokonywanie dalszych 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żesz uznać za przydatne umożliwienie użytkownikom przywracania niewygasłych subskrypcji w centrum subskrypcji Google Play po tym, jak anulujesz subskrypcję jako deweloper. Możesz na przykład udostępnić niestandardowy proces anulowania w aplikacji. Na podstawie logiki biznesowej możesz zdecydować, 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 API purchases.subscriptions.cancel i ustaw parametr żądania cancellationType na wartość USER_REQUESTED_STOP_RENEWAL.
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_RENEWAL"
}
Umożliwianie użytkownikom ponownego subskrybowania wygasłych subskrypcji
Aby umożliwić ponowną subskrypcję wygasłej subskrypcji, musisz włączyć opcję ponownej subskrypcji w abonamencie podstawowym subskrypcji, a następnie anulować subskrypcję, ustawiając parametr cancellationType na wartość USER_REQUESTED_STOP_RENEWAL.
Umożliwianie użytkownikom ponownego subskrybowania tylko w aplikacji
Jeśli parametr cancellationType ma wartość DEVELOPER_REQUESTED_STOP
_PAYMENTS lub nie został ustawiony, użytkownicy nie mogą przywrócić subskrypcji w Centrum subskrypcji Google Play.cancellationType W razie potrzeby użytkownicy mogą ponownie zasubskrybować usługę w Twojej aplikacji.
Ta czynność wywołuje SUBSCRIPTION_CANCELEDpowiadomienie dla deweloperów w czasie rzeczywistym. Postępuj zgodnie z instrukcjami podanymi w sekcji Anulowanie.
Odroczenie płatności
Możesz przedłużyć okres uprawnień do subskrypcji za pomocą 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 wygaśnięcia.
Oto kilka przykładów zastosowania odroczonych płatności:
- Udostępnij użytkownikom bezpłatny dostęp w ramach specjalnej oferty, np. tygodniowy bezpłatny dostęp dla obecnych subskrybentów za wypełnienie ankiety z opinią.
- Udostępnij 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 możliwość korzystania z usługi.
Rozliczenie można odroczyć o 1 dzień lub nawet 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.
Ta czynność wywołuje SUBSCRIPTION_DEFERREDpowiadomienie w czasie rzeczywistym dla deweloperów. Więcej informacji o obsłudze tych zdarzeń znajdziesz w sekcji Odroczenie płatności za subskrypcję w artykule Informacje o subskrypcjach.
Przykład:
Usługa strumieniowania FitnessGoals chce w lutym przeprowadzić promocję, która zachęci użytkowników do regularnych ćwiczeń.
Firma postanawia zaoferować dodatkowy miesiąc usługi każdemu subskrybentowi, który w lutym skorzysta z FitnessGoals co najmniej 10 razy.
Śledzą wyniki wyzwania, a 1 marca wywołują metodę subscriptionsv2.defer w przypadku każdego aktywnego zakupu subskrypcji należącego do użytkowników, którzy w lutym spełnili warunki wyzwania.
Użytkownicy ci zyskują dodatkowy pełny miesiąc regularnych filmów z ćwiczeniami bez żadnych opłat, a potem opowiadają wszystkim 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 lub cofnąć dostęp do subskrypcji lub zakupu jednorazowego.
Pełny zwrot środków za zamówienie według identyfikatora zamówienia
Za pomocą interfejsu orders.refund
API 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 wywoła SUBSCRIPTION_REVOKED
powiadomienie w czasie rzeczywistym dla deweloperów. Więcej informacji o obsłudze tych zdarzeń znajdziesz w przewodniku po zarządzaniu cyklem życia subskrypcji w sekcji dotyczącej wycofywania.
Przykład:
Z okazji rozpoczęcia nowych mistrzostw świata aplikacja e-sportowa Football-Not-Soccer postanawia rozlosować bezpłatne wirtualne koszulki wśród wszystkich użytkowników, którzy w ciągu pierwszych 24 godzin kupią nowe zestawy drużynowe.
Aplikacja Football-Not-Soccer korzysta z interfejsu
orders.refundAPI bez przekazywania parametru unieważnienia, aby zwrócić środki za zakupione koszulki zwycięzcom.
Unieważnianie subskrypcji i zwrot środków za subskrypcję na podstawie tokena zakupu
W niektórych przypadkach może być konieczne odebranie użytkownikowi dostępu do subskrypcji i przyznanie mu zwrotu środków. Płatności w Google Play oferują metody wycofania, w tym pełne i proporcjonalne zwroty środków za pomocą interfejsu 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 dla deweloperów w czasie rzeczywistym. 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 - Cel 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łny zwrot ś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:
Maria ma automatycznie odnawianą 30-dniową subskrypcję usługi streamingowej SuperMovies w ramach miesięcznego abonamentu. 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.
Obsługa klienta znajduje w systemie szczegóły zakupu subskrypcji przez Marię i wysyła do
purchases.subscriptionsv2.revokeprośbę o pełny zwrot środków.Obsługa klienta informuje Marię, że powinna otrzymać zwrot 100% ceny subskrypcji i nie jest już subskrybentką 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.
Przykład:
Maria ma automatycznie odnawianą 30-dniową subskrypcję usługi streamingowej SuperMovies w ramach miesięcznego abonamentu. Od pewnego czasu korzysta z tej usługi i jest z niej zadowolona. 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.
Obsługa klienta znajduje w swoim systemie szczegóły zakupu subskrypcji przez Marię i inicjuje połączenie z numerem
purchases.subscriptionsv2.revoke, aby poprosić o proporcjonalny zwrot środków.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.