Subskrypcja z dodatkami

Subskrypcja z dodatkami umożliwia łączenie ze sobą wielu produktów subskrypcyjnych, które można kupować, rozliczać i zarządzać nimi razem. Istniejące subskrypcje katalogu produktów można bezproblemowo oferować jako dodatki bez konieczności wcześniejszego określania szczegółów ani dodatkowej konfiguracji. Możesz uruchomić proces zakupu z wieloma istniejącymi produktami subskrypcyjnymi i sprzedawać je jako dodatki.

co należy wziąć pod uwagę

Korzystając z subskrypcji z dodatkami, pamiętaj o tych kwestiach:

  • Subskrypcja z dodatkami jest obsługiwana tylko w przypadku automatycznie odnawianych abonamentów podstawowych.

  • Wszystkie produkty w zakupie muszą mieć ten sam okres rozliczeniowy płatności cyklicznej. Nie możesz na przykład mieć subskrypcji z rocznym okresem rozliczeniowym i dodatków z miesięcznym okresem rozliczeniowym.

  • Subskrypcja z dodatkami może zawierać maksymalnie 50 produktów.

  • Ta funkcja jest niedostępna w Indiach (IN) i Korei Południowej (KR).

Integracja z Biblioteką płatności w Play

W tej sekcji opisujemy, jak zintegrować funkcję subskrypcji z dodatkami z Biblioteką płatności w Play (PBL). Zakładamy, że znasz już początkowe kroki integracji biblioteki PBL, takie jak dodanie zależności PBL do aplikacji, zainicjowanie BillingClientpołączenie z Google Play. Ta sekcja dotyczy aspektów integracji PBL, które są specyficzne dla subskrypcji z dodatkami.

Uruchamianie procesu zakupu

Aby uruchomić proces zakupu subskrypcji z dodatkami, wykonaj te czynności:

  1. Pobierz wszystkie elementy subskrypcji za pomocą metody BillingClient.queryProductDetailsAsync.

  2. Ustaw obiekt ProductDetailsParams dla każdego elementu.

    Element reprezentowany przez obiekt ProductDetailsParams określa zarówno ProductDetails wskazujący element subskrypcji, jak i offerToken wybierający konkretną subskrypcję base plan lub offer.

  3. Podaj szczegóły elementu w metodzie BillingFlowParams.Builder.setProductDetailsParamsList. Klasa BillingFlowParams określa szczegóły procesu zakupu.

    Poniższy przykład pokazuje, jak uruchomić proces płatności za subskrypcję z wieloma produktami:

    Java

       BillingClient billingClient = ;
    
        // ProductDetails obtained from queryProductDetailsAsync().
        ProductDetailsParams productDetails1 = ...;
        ProductDetailsParams productDetails2 = ...;
        ArrayList productDetailsList = new ArrayList<>();
        productDetailsList.add(productDetails1);
        productDetailsList.add(productDetails2);
    
        BillingFlowParams billingFlowParams =
            BillingFlowParams.newBuilder()
               .setProductDetailsParamsList(productDetailsList)
               .build();
        billingClient.launchBillingFlow(billingFlowParams);

Zasady obowiązujące w przypadku produktów w zakupie

  • Aby daty odnowienia dodatków były zgodne z datami odnowienia produktu podstawowego, Google Play może po zakończeniu okresu próbnego lub okresu z ceną dla nowych użytkowników naliczyć proporcjonalną opłatę.
  • Kwalifikowalność oferty będzie oceniana oddzielnie dla każdego produktu.

Przetwarzanie zakupów

Przetwarzanie subskrypcji z dodatkami jest takie samo jak przetwarzanie pojedynczego zakupu subskrypcji, co opisano w artykule Integrowanie Biblioteki płatności w Google Play z aplikacją. Jedyna różnica polega na tym, że użytkownik może otrzymać wiele uprawnień w ramach jednego zakupu. Zakup subskrypcji z dodatkami zwraca wiele elementów, które można pobrać za pomocą Purchase.getProducts() w bibliotece Płatności w Google Play, a następnie listy lineItemspurchases.subscriptionsv2.get interfejsu Google Play Developer API.

Zmienianie subskrypcji z dodatkami

Wszelkie zmiany w subskrypcji z dodatkami powodują przejście na wyższą lub niższą wersję usługi. Więcej informacji znajdziesz w artykule Przechodzenie na wyższy lub niższy abonament.

Aby zmienić lub przywrócić istniejący zakup subskrypcji z dodatkami w aplikacji, musisz wywołać interfejs API launchBillingFlow z dodatkowymi parametrami i upewnić się, że:

  • Zawsze wywołuj funkcję setOldPurchaseToken z tokenem zakupu bieżącej subskrypcji.
  • Aby przejść na wyższą lub niższą wersję produktu albo zmienić go na inny, zadzwoń pod numer SubscriptionProductReplacementParams.setReplacementMode, aby określić, jak ma być obsługiwana zmiana subskrypcji między starym a nowym produktem. W przeciwnym razie nie musisz ustawiać SubscriptionProductReplacementParams.
  • Jeśli element podstawowy nie zostanie zmieniony, nadal możesz wywołać funkcję SubscriptionProductReplacementParams.setSubscriptionReplacementMode, aby zastosować określone zachowanie zastępowania. Obowiązujące w tym przypadku zasady znajdziesz w artykule Ponowne subskrybowanie lub przełączanie pakietów w ramach tej samej subskrypcji.
  • Nowe dodatki zaczną obowiązywać od razu, a opłata zostanie naliczona proporcjonalnie, aby dopasować datę kolejnego odnowienia do produktu podstawowego w subskrypcji.
  • Usunięte dodatki wygasną z końcem bieżącego okresu rozliczeniowego.
  • Podczas uruchamiania procesu płatności musisz określić wszystkie aktywne elementy subskrypcji z dodatkami z wyjątkiem tych, które mają zostać usunięte, oraz wszystkie nowe dodatki.

Poniższy przykład pokazuje, jak wywołać interfejs launchBillingFlow API podczas zmiany istniejącego zakupu subskrypcji z dodatkami:

Java

BillingClient billingClient = ;

int replacementMode =;

// ProductDetails obtained from queryProductDetailsAsync().
ProductDetailsParams productDetails1 = ...;
ProductDetailsParams productDetails2 = ...;
ProductDetailsParams productDetails3 = ...;

ArrayList newProductDetailsList = new ArrayList<>();
newProductDetailsList.add(productDetails1);
newProductDetailsList.add(productDetails1);
newProductDetailsList.add(productDetails1);

BillingFlowParams billingFlowParams =
    BillingFlowParams.newBuilder()
        .setSubscriptionUpdateParams(
          SubscriptionUpdateParams.newBuilder()
              .setOldPurchaseToken(purchaseTokenOfExistingSubscription)
              // No need to set if change does not affect the base item.
             .setSubscriptionReplacementMode(replacementMode)
             .build())
        .setProductDetailsParamsList(productDetailsList)
        .build();

billingClient.launchBillingFlow(billingFlowParams);

Scenariusze modyfikacji subskrypcji

W tabeli poniżej znajdziesz różne scenariusze modyfikacji subskrypcji z dodatkami i odpowiednie zachowania.

Podczas używania parametru SubscriptionProductReplacementParams

Istniejące produkty Zmodyfikowane produkty Czy w parametrze SubscriptionProductReplacementParams musisz ustawić tryb wymiany? Działanie
A (produkt podstawowy), B A (produkt podstawowy) Tak (użyj KEEP_EXISTING)
  • Element B jest przeznaczony do odroczonego usunięcia.
  • Element A zostaje zachowany.
  • Użytkownicy zachowają obecną cenę produktu A, w tym pozostałą część płatności wprowadzających, które otrzymali w momencie rejestracji.
A A (produkt podstawowy), B Tak (w przypadku A użyj KEEP_EXISTING)
  • Produkt B zostanie od razu dodany, a opłata za niego zostanie naliczona proporcjonalnie.
  • Element A zostaje zachowany.
  • Użytkownicy zachowają obecną cenę produktu A, w tym pozostałą część płatności wprowadzających, które otrzymali w momencie rejestracji.
A (produkt podstawowy), B A (produkt podstawowy), C Tak (w przypadku A użyj KEEP_EXISTING)
  • B jest przeznaczony do odroczonego usunięcia.
  • C zostanie dodany natychmiast, a opłata zostanie naliczona proporcjonalnie.
  • Element A zostaje zachowany.
  • Użytkownicy zachowają obecną cenę produktu A, w tym pozostałą część płatności wprowadzających, które otrzymali w momencie rejestracji.
A (produkt podstawowy), B B (produkt podstawowy) Nie A jest zaplanowane do odroczonego usunięcia.
A (produkt podstawowy), B C (produkt podstawowy) Tak
  • Zamiana A -> C zależy od SubscriptionProductReplacementParams replacementMode
  • B jest przeznaczony do odroczonego usunięcia.
A (produkt podstawowy), B C (produkt podstawowy), B Tak
  • Zamiana A -> C zależy od SubscriptionProductReplacementParams replacementMode.
  • Aby zachować element B bez zmian, ustaw tryb zastępowania jako KEEP_EXISTING.
A (produkt podstawowy), B C (produkt podstawowy), D Tak
  • Zamiana A -> C zależy od SubscriptionProductReplacementParams replacementMode.
  • B jest przeznaczony do odroczonego usunięcia.
  • D zostanie dodany natychmiast, a opłata zostanie naliczona proporcjonalnie.
A (produkt podstawowy), B A (produkt podstawowy), C Tak
  • Zamiana A –> A i B –> C zależy od trybu zamiany podanego w SubscriptionProductReplacementParams replacementMode w każdym ProductDetailsParams.
  • Aby zachować element A bez zmian, ustaw tryb zastępowania jako KEEP_EXISTING.
A (produkt podstawowy), B, C D (produkt podstawowy), B, C Tak
  • Zastąpienie A->D i B->B, C->C zależy od trybu zastępowania podanego w SubscriptionProductReplacementParams replacementMode w każdym ProductDetailsParams.
  • Aby zachować elementy B i C bez zmian, ustaw dla nich tryb zastępowania KEEP_EXISTING.

Podczas korzystania z parametru SubscriptionUpdateParams

Istniejące produkty Zmodyfikowane produkty Czy musisz ustawić informacje o zamienniku? Działanie
A (produkt podstawowy), B A (produkt podstawowy) Nie
  • Element B jest przeznaczony do odroczonego usunięcia.
  • Działanie elementu A zależy od ustawienia Zmiany abonamentu podstawowego i oferty w abonamencie podstawowym.
  • Cena produktu A zostanie zaktualizowana do najnowszej ceny, a użytkownicy mogą utracić wszelkie płatności wprowadzające, które otrzymali podczas rejestracji na podstawie kryteriów kwalifikacji do oferty.
A A (produkt podstawowy), B Nie
  • Produkt B zostanie od razu dodany, a opłata za niego zostanie naliczona proporcjonalnie.
  • Działanie elementu A zależy od ustawienia Zmiany abonamentu podstawowego i oferty w abonamencie podstawowym.
  • Cena produktu A zostanie zaktualizowana do najnowszej ceny, a użytkownicy mogą utracić wszelkie płatności wprowadzające, które otrzymali podczas rejestracji na podstawie kryteriów kwalifikacji do oferty.
A (produkt podstawowy), B A (produkt podstawowy), C Nie
  • B jest przeznaczony do odroczonego usunięcia.
  • C zostanie dodany natychmiast, a opłata zostanie naliczona proporcjonalnie.
  • Działanie elementu A zależy od ustawienia Zmiany abonamentu podstawowego i oferty w abonamencie podstawowym.
A (produkt podstawowy), B B (produkt podstawowy) Nie A jest zaplanowane do odroczonego usunięcia.
A (produkt podstawowy), B C (produkt podstawowy) Tak
A (produkt podstawowy), B C (produkt podstawowy), B Tak Zastąpienie A -> C zależy od setSubscriptionReplacementMode (wycofane w PBL 8.1).
A (produkt podstawowy), B C (produkt podstawowy), D Tak
  • Zastąpienie A -> C zależy od setSubscriptionReplacementMode (wycofane w PBL 8.1).
  • B jest przeznaczony do odroczonego usunięcia.
  • D zostanie dodany natychmiast, a opłata zostanie naliczona proporcjonalnie.

Powiadomienia w czasie rzeczywistym dla deweloperów

Pole subscriptionId nie jest podawane w RTDN w przypadku zakupów subskrypcji z dodatkami, które zawierają uprawnienia do wielu produktów. Zamiast tego możesz użyć interfejsów Play Developer API, aby uzyskać informacje o zakupie i zobaczyć powiązane uprawnienia do produktu.

Zmiany cen dla obecnych subskrybentów

Zmiana cen subskrypcji dla obecnych subskrybentów subskrypcji z dodatkami przebiega podobnie jak zmiana cen pojedynczej subskrypcji opisana w artykule Zmienianie cen subskrypcji. Istnieją jednak pewne ograniczenia i różnice w funkcjonalności, które opisujemy w tej sekcji.

Rezygnowanie ze starszej kohorty cenowej

Zakończenie starszej kohorty ma też wpływ na subskrypcje z zakupionymi dodatkami. Obowiązują te reguły:

  • Wszystkie oczekujące wzrosty cen z możliwością akceptacji powinny mieć ten sam czas odnowienia z nową ceną. Jeśli element w subskrypcji z dodatkami ma wzrost ceny wymagający zgody użytkownika, który nie został jeszcze potwierdzony przez użytkownika, wszelkie nowe wzrosty ceny wymagające zgody użytkownika w przypadku innych elementów zakupu będą ignorowane, chyba że spowodują ten sam czas odnowienia zastosowania nowej ceny co istniejący wzrost ceny w stanie OUTSTANDING. Gdy użytkownik potwierdzi wzrost ceny, zostaną zarejestrowane wszelkie nowsze zmiany ceny. Użytkownicy mogą zaakceptować wszystkie niepotwierdzone wzrosty ceny wymagające zgody użytkownika tylko jednocześnie.

    Przykład:

    • Załóżmy, że masz subskrypcję z dodatkami (produkty A i B), która odnawia się 7 dnia każdego miesiąca.
    • Produkt A jest w trakcie zmiany ceny z 7 PLN na 10 PLN, a wzrost ceny ma nastąpić 7 lipca.
    • 2 czerwca rozpoczyna się nowa migracja ceny z 5 USD na 6 USD w przypadku produktu B. Wzrost ceny wymagający zgody użytkownika zaczyna obowiązywać 37 dni po migracji, więc najwcześniejszy wzrost ceny produktu B nastąpi 7 sierpnia.

    W tym scenariuszu dopóki użytkownik nie zaakceptuje zmiany ceny produktu A (dopóki nie będzie on w stanie POTWIERDZONY), zmiana ceny produktu B nie zostanie zarejestrowana w przypadku zakupu subskrypcji, a metoda SubscriptionPurchaseV2 nie zwróci szczegółów zmiany ceny produktu B. Po potwierdzeniu przez użytkownika zmiany ceny produktu A rozpoczyna się zmiana ceny produktu B. Użytkownik otrzyma wzrost ceny wymagający zgody użytkownika w przypadku produktu B dopiero po zaakceptowaniu wzrostu ceny wymagającego zgody użytkownika w przypadku produktu A.

  • E-mail od Google Play zawiera listę wszystkich produktów, których ceny wzrosły lub zmalały tego samego dnia.

Anulowanie subskrypcji z dodatkami

Użytkownicy mogą anulować cały zakup subskrypcji z dodatkami w centrum subskrypcji Google Play, a Ty możesz anulować cały zakup subskrypcji z dodatkami tylko za pomocą interfejsu Google Play Developer API.

Gdy subskrypcja zostanie anulowana bez cofnięcia, żadne elementy zakupu nie będą odnawiać się automatycznie, ale użytkownik zachowa dostęp do przysługujących mu elementów, w tym do bezpłatnych okresów próbnych, do końca odpowiednich okresów rozliczeniowych.

Unieważnianie i zwracanie środków za subskrypcje z dodatkami

Oto niektóre wytyczne dotyczące wycofywania subskrypcji i przyznawania zwrotów środków:

  • W Konsoli Play możesz zwrócić środki za konkretne zamówienie bez odbierania dostępu do subskrypcji.

  • Wywołaj funkcję orders.refund, aby w pełni zwrócić użytkownikowi środki za konkretne płatności za subskrypcję bez odbierania mu dostępu do niej.

  • Zadzwoń pod numer purchases.subscriptionsv2.revoke, aby natychmiast odebrać dostęp do wszystkich elementów subskrypcji. Za pomocą tego interfejsu API możesz:

    • cofnąć dostęp do wszystkich elementów i zwrócić proporcjonalną kwotę;

    • W przypadku wycofania subskrypcji z dodatkami z proporcjonalnym zwrotem środków zwrot środków zostanie przyznany za ostatnie zamówienie każdego produktu w proporcjonalnej kwocie na podstawie czasu pozostałego do następnego odnowienia.

    • Cofnij dostęp do wszystkich elementów i zapewnij pełny zwrot środków.

    • Cofnij dostęp do poszczególnych elementów i otrzymaj pełny zwrot środków za dany element.

Unieważnianie poszczególnych elementów w subskrypcji z dodatkami

Aby cofnąć poszczególne elementy subskrypcji z dodatkami bez cofania całego zakupu, wywołaj purchases.subscriptionsv2.revoke z ustawionym polem ItemBasedRefundRevocationContext. productId produktu, który ma zostać wycofany i za który mają zostać zwrócone środki, można ustawić w polu ItemBasedRefund.

Pole ItemBasedRefund można ustawić w przypadku zakupów obejmujących co najmniej 1 element subskrypcji z automatycznym odnawianiem.

  • Jeśli po cofnięciu elementu określonego w ItemBasedRefund w ramach zakupu subskrypcji nadal będą aktywne inne elementy, cofnięty zostanie tylko ten element, a środki za niego zostaną w pełni zwrócone bez przerywania stanu subskrypcji.
  • Jeśli po wycofaniu produktu określonego w ItemBasedRefund w subskrypcji nie ma już aktywnych produktów, produkt zostanie wycofany, a środki za niego zostaną w pełni zwrócone. Subskrypcja zostanie anulowana.

co należy wziąć pod uwagę

  • W przypadku korzystania z ItemBasedRefund można cofnąć tylko 1 element naraz. Żądanie może być wywoływane wielokrotnie, jeśli trzeba cofnąć różne elementy.
  • Jeśli subskrypcja jest w stanie odrzucenia płatności lub element określony w ItemBasedRefund nie jest własnością użytkownika albo wygasł, odrzucenie elementu jest blokowane.
  • Odrzucanie produktów nie jest obsługiwane w przypadku subskrypcji przedpłaconych.

Odroczenie płatności

Datę kolejnego rozliczenia subskrypcji z dodatkami możesz przesunąć za pomocą metody Purchases.subscriptionsv2:defer.

Gdy odroczysz subskrypcję z dodatkami, wszystkie elementy subskrypcji zostaną odroczone o ten sam czas. W tym okresie użytkownicy zachowują pełny dostęp do wszystkich elementów, ale nie są obciążani opłatami. Data odnowienia wszystkich elementów zostanie zmieniona na nową.

Może to być przydatne w przypadku promocji lub gestów dobrej woli wobec klientów. Rozliczenie może być odroczone o jeden dzień lub nawet o rok w przypadku każdego wywołania interfejsu API. Możesz wielokrotnie wywoływać interfejs API, aby przedłużyć odroczenie przed nadejściem nowej daty rozliczenia.

Gdy to działanie zostanie wykonane, zostanie wygenerowane SUBSCRIPTION_DEFERREDpowiadomienie w czasie rzeczywistym dla deweloperów.

Wygaśnięcie produktu podczas odrzucenia płatności

W przypadku zakupu subskrypcji z dodatkami niektóre odnowienia mogą wymagać przedłużenia tylko części uprawnień do elementów, bez wpływu na elementy z przyszłą datą wygaśnięcia.

Niezależnie od tego, które produkty są objęte odnowieniem, jeśli płatność za odnowienie zostanie odrzucona, cały zakup subskrypcji przejdzie w okres prolongaty, a konto zostanie zablokowane zgodnie z opisem w dokumentacji.

Wybór okresu regeneracji

Okres prolongaty nadal przyznaje użytkownikowi uprawnienia. Jeśli po zakupie subskrypcji z dodatkami płatność za odnowienie zostanie odrzucona, zostanie wybrany produkt z najkrótszym okresem prolongaty spośród wszystkich aktywnych produktów, a jego okres prolongaty i okres zawieszenia konta zostaną zastosowane jako okres przywrócenia w przypadku tego odnowienia.

Aktywne produkty to produkty, które były aktywne w momencie zakupu subskrypcji z dodatkami tuż przed próbą odnowienia. Nie obejmują one żadnych nowo dodanych produktów (które nie będą uprawnione do czasu odzyskania) ani żadnych produktów, które nie są już aktywne z powodu usunięcia lub wyłączenia.

Zastosowane zostanie ustawienie zawieszenia konta dla produktu z wybranym minimalnym okresem prolongaty. Jeśli jest więcej niż 1 produkt z minimalnym okresem prolongaty, ale różnymi okresami zawieszenia konta, zostanie zastosowany najdłuższy okres zawieszenia konta.

Okres prolongaty

Gdy płatność za odnowienie subskrypcji zostanie odrzucona, subskrypcja przejdzie w stan okresu prolongaty. W okresie prolongaty użytkownik nadal będzie mieć dostęp do wszystkich aktywnych elementów z poprzedniego okresu odnowienia. Jeśli po okresie prolongaty problem z formą płatności nie zostanie rozwiązany, cała subskrypcja zostanie zawieszona. Jeśli w okresie prolongaty inne produkty osiągną datę odnowienia, po wznowieniu subskrypcji po odrzuceniu płatności zostanie podjęta nowa próba obciążenia konta za te produkty.

Zawieszenie konta

Gdy zakup subskrypcji jest wstrzymany, dostęp do wszystkich elementów subskrypcji jest zawieszony do czasu odzyskania płatności.

Jeśli subskrypcja w okresie zawieszenia konta zostanie przywrócona, zakup subskrypcji będzie nadal obowiązywać. Jeśli subskrypcja nie zostanie przywrócona, produkty, w przypadku których płatność została odrzucona, wygasną, a dostęp do pozostałych produktów zostanie przywrócony na pozostały okres rozliczeniowy.

Przykład:

  • Użytkownik ma subskrypcję My Base Plan, która odnawia się 1 dnia każdego miesiąca. 15 sierpnia dodaje abonament dodatkowy za 10 USD miesięcznie z 7-dniowym bezpłatnym okresem próbnym. Żaden z tych produktów nie ma ustawionego okresu prolongaty, a oba mają 30-dniowy okres zawieszenia konta.

  • 22 sierpnia użytkownik zostaje obciążony kwotą 2, 90 zł (10 zł*9/31) za okres do 31 sierpnia, ale forma płatności użytkownika wygasa wcześniej, a subskrypcja zostaje odrzucona 22 sierpnia.

Gdy subskrypcja zostanie zawieszona z powodu odrzucenia płatności, użytkownik nie będzie mieć dostępu do żadnych elementów subskrypcji z dodatkami. Pozostały czas subskrypcji, które nie są odnawiane, zostanie zwrócony użytkownikom, gdy subskrypcja przestanie być zawieszona z powodu odzyskania płatności lub anulowania.

W poprzednim przykładzie subskrypcja wchodzi w stan zawieszenia konta 22 sierpnia.

  • Jeśli konto zostanie odzyskane 25 sierpnia, czyli przed datą odnowienia 1 września, użytkownik odzyska dostęp do abonamentu Base Plandodatku tego samego dnia. Następna data rozliczenia została zmieniona na 4 września.

  • Jeśli konto nie zostanie odzyskane w ciągu 30 dni, 21 września subskrypcja zostanie anulowana, a użytkownik straci dostęp do dodatkowego pakietu. Do 30 września będzie mógł ponownie korzystać z pakietu podstawowego.

W tym przykładzie musisz uzyskać zaktualizowany atrybut expiryTime DLA WSZYSTKICH produktów w subskrypcji z dodatkami, ponieważ niektóre produkty mogą odzyskać uprawnienia po okresie prolongaty i zawieszenia konta.

Sprawozdawczość finansowa i uzgadnianie

Użyj raportu o zarobkach, aby porównać aktywne subskrypcje z transakcjami w Google Play. Każdy element zamówienia transakcji ma identyfikator zamówienia. W przypadku zakupów obejmujących kilka produktów raporty Zarobki i szacunkowa sprzedaż będą zawierać osobne wiersze dla każdej transakcji, np. obciążenia, opłaty, podatku i zwrotu środków, w przypadku każdego produktu.

W przypadku paneli w Konsoli Play:

  • Statystyki przychodów prezentowane w sekcji Raporty finansowe w konsoli są podzielone według produktów.

  • Zarządzanie zamówieniami odzwierciedla zakup subskrypcji z dodatkami i zawiera szczegółowe listy zakupionych produktów. W sekcji zarządzania zamówieniami możesz cofnąć, anulować lub w pełni zwrócić środki za zakup użytkownika.