Udostępnij za pośrednictwem


Włączanie zakupów produktów w aplikacji

Niezależnie od tego, czy aplikacja jest bezpłatna, czy nie, możesz sprzedawać zawartość, inne aplikacje lub nowe funkcje aplikacji (takie jak odblokowywanie następnego poziomu gry) bezpośrednio w aplikacji. W tym miejscu pokażemy, jak włączyć te produkty w aplikacji.

Ważny

W tym artykule pokazano, jak używać elementów członkowskich przestrzeni nazw Windows.ApplicationModel.Store do włączania zakupów produktów w aplikacji. Ta przestrzeń nazw nie jest już aktualizowana przy użyciu nowych funkcji i zalecamy użycie Windows.Services.Store przestrzeni nazw. Przestrzeń nazw Windows.Services.Store obsługuje najnowsze typy dodatków, takie jak konsumowane dodatki zarządzane przez Sklep i subskrypcje, i jest zaprojektowana w taki sposób, aby były zgodne z przyszłymi typami produktów, i funkcji obsługiwane przez Centrum partnerskie i Sklep. Przestrzeń nazw Windows.Services.Store została wprowadzona w systemie Windows 10 w wersji 1607 i może być używana tylko w projektach przeznaczonych dla systemu Windows 10 Anniversary Edition (10.0; Kompilacja 14393) lub nowsza wersja w programie Visual Studio. Aby uzyskać więcej informacji dotyczących zakupów w aplikacji przy użyciu przestrzeni nazw Windows.Services.Store, zobacz ten artykuł.

Notatka

Produkty w aplikacji nie mogą być oferowane w wersji próbnej aplikacji. Klienci korzystający z wersji próbnej aplikacji mogą kupić produkt w aplikacji tylko wtedy, gdy zakupią pełną wersję aplikacji.

Warunki wstępne

  • Aplikacja systemu Windows, w której można dodawać funkcje dla klientów do zakupu.
  • Podczas kodowania i testowania nowych produktów w aplikacji po raz pierwszy należy użyć obiektu CurrentAppSimulator zamiast obiektu CurrentApp. W ten sposób można zweryfikować logikę licencji przy użyciu symulowanych wywołań do serwera licencji zamiast wywoływania serwera na żywo. W tym celu należy dostosować plik o nazwie WindowsStoreProxy.xml w %userprofile%\AppData\local\packages\<nazwa pakietu>\LocalState\Microsoft\Windows Store\ApiData. Symulator Microsoft Visual Studio tworzy ten plik podczas pierwszego uruchomienia aplikacji, lub można załadować niestandardowy plik w czasie działania. Aby uzyskać więcej informacji, zobacz Using the WindowsStoreProxy.xml file with CurrentAppSimulator.
  • W tym temacie referuje się również do przykładów kodu podanych w przykładzie Store. Ten przykład to doskonały sposób na praktyczne korzystanie z różnych opcji zarabiania dostępnych dla aplikacji platformy uniwersalnej systemu Windows (UWP).

Krok 1. Inicjowanie informacji o licencji dla aplikacji

Podczas inicjowania aplikacji zainicjuj CurrentApp lub CurrentAppSimulator, aby pobrać obiekt LicenseInformation dla aplikacji i umożliwić zakupy produktu w aplikacji.

void InitializeApp()
{
    // Some app initialization code...

    // Initialize the license info for use in the app that is uploaded to the Store.
    // Uncomment the following line in the release version of your app.
    //   licenseInformation = CurrentApp.LicenseInformation;

    // Initialize the license info for testing.
    // Comment the following line in the release version of your app.
    licenseInformation = CurrentAppSimulator.LicenseInformation;

    // Other app initialization code...
}

Krok 2: Dodaj oferty w aplikacji do swojej aplikacji

Dla każdej funkcji, którą chcesz udostępnić za pośrednictwem produktu w aplikacji, utwórz ofertę i dodaj ją do aplikacji.

Ważny

Przed przesłaniem ich do Sklepu musisz dodać wszystkie produkty w aplikacji, które chcesz przedstawić swoim klientom. Jeśli chcesz później dodać nowe produkty w aplikacji, musisz zaktualizować aplikację i ponownie przesłać nową wersję.

  1. Tworzenie tokenu oferty w aplikacji

    Każdy produkt w aplikacji można zidentyfikować za pomocą tokenu. Ten token jest ciągiem zdefiniowanym i używanym w aplikacji oraz w Sklepie w celu zidentyfikowania określonego produktu w aplikacji. Nadaj jej unikalną nazwę zrozumiałą dla twojej aplikacji, abyś mógł szybko zidentyfikować właściwą funkcję, którą reprezentuje podczas kodowania. Oto kilka przykładów nazw:

    • "SpaceMissionLevel4"
    • "ContosoCloudSave"
    • RainbowThemePack

Notatka

Token oferty w aplikacji używany w kodzie musi być zgodny z wartością identyfikatora produktu określaną podczas definiowania odpowiedniego dodatku dla aplikacji w Centrum partnerskim.

  1. Kod funkcji w bloku warunkowym

    Należy umieścić kod dla każdej funkcji skojarzonej z produktem w aplikacji w bloku warunkowym, który sprawdza, czy klient ma licencję na korzystanie z tej funkcji.

    Oto przykład pokazujący, jak można kodować funkcję produktu o nazwie featureName w bloku warunkowym specyficznym dla licencji. Ciąg, featureName, jest tokenem, który jednoznacznie identyfikuje ten produkt w aplikacji i jest również używany do identyfikowania go w Sklepie.

    if (licenseInformation.ProductLicenses["featureName"].IsActive)
    {
        // the customer can access this feature
    }
    else
    {
        // the customer can' t access this feature
    }
    
  2. Dodaj interfejs użytkownika zakupów dla tej funkcji

    Aplikacja musi również zapewnić klientom możliwość zakupu produktu lub funkcji oferowanej przez produkt w aplikacji. Nie mogą kupić ich za pośrednictwem Sklepu w taki sam sposób, w jaki zakupili pełną aplikację.

    Poniżej przedstawiono sposób testowania, czy klient jest już właścicielem produktu w aplikacji, a jeśli nie, wyświetla okno dialogowe zakupu, aby mógł go kupić. Zastąp komentarz "pokaż okno dialogowe zakupu" swoim niestandardowym kodem dla okna dialogowego zakupu (na przykład stroną z przyciskiem "Kup tę aplikację!").

    async void BuyFeature()
    {
        if (!licenseInformation.ProductLicenses["featureName"].IsActive)
        {
            try
            {
                // The customer doesn't own this feature, so
                // show the purchase dialog.
                await CurrentAppSimulator.RequestProductPurchaseAsync("featureName", false);
    
                //Check the license state to determine if the in-app purchase was successful.
            }
            catch (Exception)
            {
                // The in-app purchase was not completed because
                // an error occurred.
            }
        }
        else
        {
            // The customer already owns this feature.
        }
    }
    

Krok 3. Zmiana kodu testowego na końcowe wywołania

Jest to prosty krok: zmień każde odwołanie do CurrentAppSimulator na CurrentApp w kodzie aplikacji. Nie musisz już podawać pliku WindowsStoreProxy.xml, więc usuń go ze ścieżki aplikacji (chociaż możesz zapisać go do celów referencyjnych podczas konfigurowania oferty w aplikacji w następnym kroku).

Krok 4: Skonfiguruj ofertę produktu w aplikacji w sklepie

W Centrum Partnerów przejdź do swojej aplikacji i utwórz dodatek pasujący do oferty produktu w aplikacji. Zdefiniuj identyfikator produktu, typ, cenę i inne właściwości dodatku. Upewnij się, że konfiguracja jest identyczna z konfiguracją ustawioną w WindowsStoreProxy.xml podczas testowania.

Notatka

Token oferty w aplikacji, którego używasz w kodzie, musi pasować do identyfikatora produktu oraz wartości określonych dla odpowiedniego dodatku w Centrum partnerskim.

Uwagi

Jeśli interesuje Cię udostępnianie klientom opcji produktu eksploatacyjnego w aplikacji (elementy, które można kupić, wykorzystać, a następnie zakupić ponownie w razie potrzeby), przejdź do tematu Włącz zakupy produktów w aplikacji.

Jeśli musisz użyć paragonów, aby sprawdzić, czy użytkownik dokonał zakupu w aplikacji, zapoznaj się z Użyj paragonów, aby zweryfikować zakupy produktów.