Köp i app är ett utmärkt sätt att öka intäkterna för din Windows Phone-app. I den här handledningen visar jag dig hur man implementerar inköp i app i ett Windows Phone 8 Silverlight-program.
För att testa din ansökan måste du skapa en produkt som ska testas med. Det innebär att du behöver ett aktivt Windows Phone Developer-konto om du vill följa med.
Windows Phone 8 ger en bekväm uppköpserfarenhet, pålitliga utbetalningar, geodistribuerade tjänster och verktyg för produkthantering för att uppnå meningsfull handel i din app. Du kan välja mellan inköp i app och andra betalningsalternativ (till exempel PayPal), men köp i app ger dig större flexibilitet som de ger:
I utvecklingsportalens Windows Dashboard, bläddra till detaljer fliken i din app och notera App ID. Ta också med dig Utgivare GUID från utvecklarportalen. Du kommer att behöva dessa detaljer senare för att uppdatera applikations manifestfilen.
Om du utvecklar en ny app går du till instrumentpanelen och klickar på Skicka app för att starta inlämningsprocessen och reservera ett namn på din app. Spara dessa detaljer och du kan hoppa över att skicka in XAP-filen för nu. Notera bara App-ID från Appegenskaper sektion.
Under ansökningsuppgifter finns det a Produkter flik där du kan lägga till och hantera produkter i appen för din app. För denna demonstration har vi skapat en produkt som heter Premium App.
I utvecklarportalen för Windows Phone måste du lägga till din produktinformation och beskrivning i app-appen. Du kan valfritt ställa in anpassad prissättning på olika marknader för din produkt.
Du måste fylla i egenskaperna hos din in-app-produkt som visas i följande skärmdump. Kom ihåg det Produktidentifierare som du behöver för att kunna lista produkter i appen i din app.
Här är några saker som är värda att komma ihåg när du lägger till en in-app-produkt:
Beskrivningsdelen kräver att du lägger till en produkttitel, beskrivning och bild för produkten i appen som visas på skärmbilden nedan.
Observera att det kan ta en eller två timmar att behandla din inlämning innan produkten publiceras.
Det är dags att uppdatera ansöknings manifestet genom att lägga till App ID och Utgivare GUID, som du kopierade från utvecklarportalen för Windows Phone. Använda Lösningsutforskare av ditt projekt, bläddra till Egenskaper och lokalisera WMAppManifest.xml.
Visual Studio tilldelar ett slumpmässigt produkt-ID och utgivar-ID när du skapar ett nytt projekt, vilket du måste ändra genom att gå till Förpackning flik. Om du bara riktar in Windows Phone 8.1 måste du uppdatera Package.appmanifest Dessutom WMAppManifest.xml.
Appen använder apphanterings API-programmet tillgängligt i Windows Phone SDK för att hämta produkter och lista dem. Användaren har nu möjlighet att köpa dessa produkter från appen. Beroende på vilken applikation du bygger, kanske du vill lista specifika produkter på olika ställen, men för demonstrationens syfte, låt oss visa alla produkter som är associerade med appen och hantera inköpsflödet.
Vi behöver en ItemsControl
att hålla produkterna. Följande kodsekvens visar hur du kan definiera datamallen för din ItemsControl
och binda produkterna till den. Observera att köpetknappen är endast synlig om användaren inte har köpt produkten. Känn dig fri att spela med datamallen för att göra det mer attraktivt.
Den offentliga klassen ProductItem
lagrar all information som är relaterad till en viss produkt. Där är en ObservableCollection
av typ ProductItem
som heter picItems
, som lagrar alla produkter.
offentlig klass ProductItem public string imgLink get; uppsättning; allmän sträng Status get; uppsättning; allmän sträng Namn get; uppsättning; allmän strängnyckel get; uppsättning; offentligt system.Windows.Visibility BuyNowButtonVisible get; uppsättning;
Nästa steg är att lägga till en funktion RenderStoreItems
i koden bakom för att lista alla produkter för ansökan. Denna funktion gör ett asynkront samtal till LoadListingInformationAsync
att göra produkterna för den aktuella applikationen. Funktionen repeterar sedan genom varje produkt, kontrollerar dess licensinformation och lägger till den i listan. Vi binder namn, köpstatus och pris till listrutan och visar det till användaren.
ListingInformation li = väntar Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); foreach (strängnyckel i li.ProductListings.Keys) ProductListing pListing = li.ProductListings [key]; System.Diagnostics.Debug.WriteLine (nyckel); strängstatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive? "Köpt": pListing.FormattedPrice; sträng imageLink = string.Empty; // picItems är en observerbar samling med globala räckvidd till MainPage.xaml picItems.Add (ny ProductItem imgLink = key.Equals ("PremiumVersion")? "Images / block-ads.png": "Bilder / block-ads.png" ", Namn = pListing.Name, Status = Status, nyckel = nyckel, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive? System.Windows.Visibility.Collapsed: System.Windows.Visibility.Visible ); pics.ItemsSource = picItems;
Observera att du måste ange rätt App ID, Utgivare-ID, och Serienummer innan du kan distribuera provprojektet med denna handledning.
Därefter måste du lägga till händelsehanteraren för att klicka på knappen Köp. Funktionen ButtonBuyNow_Clicked
initierar köpet. Användaren presenteras med en köpupplevelse som ingår i Windows Phone 8-plattformen. När inköpet är klart kan du aktivera en låst funktion eller låta användaren hämta ytterligare innehåll. Det här är helt upp till dig.
Knapp btn = avsändare som knapp; strängnyckel = btn.Tag.ToString (); om (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive) ListingInformation li = väntar Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); sträng pID = li.ProductListings [key] .ProductId; strängkvittot = väntar Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (pID, false);
Du kan använda inköp API för appen för att räkna upp de licenser som användaren har för produkterna i din app när appen startas eller återupptas, eller efter ett köp. Detta låter dig avgöra om användaren redan äger den produkt som han eller hon har licensierat, eller om dess uppfyllelse fortfarande är pågående. Du kan också hämta kvitton för de produkter som köps av användaren för att verifiera om transaktionen skedde med hjälp av GetProductReceiptAsync
fungera.
sträng receiptXml = väntar CurrentApp.GetProductReceiptAsync ("PremiumVersion");
Kolla vädret LicenseInformation.IsActive
avkastning Sann
för en produkt innan ett köp uppnås. Anropet till denna funktion är dock resursintensiv så det är lämpligt att inte ringa det vid applansering eller återuppta.
När du tror att ett produktköp har slutförts, först verifiera att det finns en licens för det produktidentifikationen och kontrollera sedan om Är aktiv
är Sann
på den licensen. Om licensen är aktiv ska köpet vara uppfyllt omedelbart.
bool productStatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses ["AdBlocker"]. IsActive;
Ett möjligt scenario där inköp i app kan vara användbar är när du vill distribuera din app gratis med annonser och låta användaren ta bort dem via ett köp i app. Här är en artikel om att implementera en "block ads" -funktion med hjälp av köpprogrammet för app-app. Samma teknik kan användas för att genomföra en försök. Fördelen är att din app är listad i gratiskategori i butiken och kommer som ett resultat att få dig fler nedladdningar.
När det gäller konsumtionsprodukter är det appens ansvar att spåra konsumtionen. De CurrentApp.LicenseInformation
ger endast information om licensen, inte staten.
Om du testar din app i emulatorn är inköpsköp gratis och inga finansiella transaktioner äger rum. Varje gång du installerar om appen i emulatorn, raderas tidigare lagrad licensinformation.
Det finns tre huvudsakliga tekniker för att testa inköp i app:
I den här handledningen har du lärt dig hur du listar produkter i appen och aktiverar en appfunktion när användaren köper en produkt. Det finns många anpassningar möjliga med inköp i app och de kan användas i olika scenarier.
Jag uppmanar dig att gå igenom översiktsgränssnittet i AppPurchase på MSDN. Det är också värt att titta på alternativ för att testa inköpskapacitet i appen i din app innan du publicerar den på marknaden. Ta gärna hämta källkursfilerna för handledningen för att använda som referens.