Implementering In

Implementing In-App Purchase på Windows Phone 8
41
Del
8
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

In-app kjøp er en utmerket måte å øke inntektene for Windows Phone app. I denne opplæringen vil jeg skal vise deg hvordan du kan implementere i-app kjøp i en Windows Phone 8 Silverlight-applikasjon.

For å teste din søknad, vil du trenger for å lage et produkt for å teste med. Dette betyr at du trenger en aktiv Windows Phone utviklerkonto hvis du ønsker å følge med.

Innledning

Windows Phone 8 gir en praktisk purchaseexperience, pålitelige utbetalinger, geo-distribuerte tjenester, og produkt managementtools å oppnå meningsfull handel i programmet ditt. Du kan velge betweenin-app kjøp og andre betalingsmåter (for eksempel PayPal), men i-apppurchases gi deg mer fleksibilitet som de gir:

forvaltning av produkter ved hjelp av Windows Phone utvikleren portal

geo-distribuerte tjenester og utbetalinger i mer enn 190 land

konsekvent kjøpsopplevelse for brukere på tvers av alle apps på telefonen og bevis på autentisitet gjennom sikre kvitteringer

1. Få en App ID

I Windows Phone utvikleren portal dashbord, bla til Kategorien Detaljer av appand notere App ID
.Også hente ditt Publisher GUID
Bergem utvikler portal. Du kommer til å trenge disse detaljene senere for å oppdatere theapplication manifestfilen.

Hvis du utvikler en ny app, så gå til dashbordet andclick på Send App
å starte thesubmission prosessen og reserve et navn på programmet. Lagre disse detaljene og youcan hoppe sende inn XAP fil for nå. Bare legg merke til App-ID fra Appproperties delen.

2. Legg aproduct til din App

Under programdetaljer, det isa Produkter
fane der du kan legge andmanage produkter i appen for programmet. For hensikten med denne demonstrasjonen, har vi laget et produkt som heter Premium App
.

I Windows Phone utvikleren portal, må du legge til din i-app produktets egenskaper og beskrivelse. Du kan eventuelt sett tilpasset prisingen i ulike markeder for ditt produkt.

Du må fylle ut egenskapene til produktet i appen som vist i følgende skjermbilde. Husk Produkt Identifier som du vil trenge det for notering produkter i appen i app

Her er et par ting verdt å huske mens du legger en in-app produkt.
< li> Du kan ha flere produkter Foran app. Hvert produkt kan være forbruks eller holdbare. Holdbare produkter kan kun kjøpes en gang.

  • Universal apps kan dele in-appproducts, og lar brukerne kjøpe en gang og bruke hvor som helst. Din in-app productcategory kan variere, men produktnavnet og identiteten må stemme overens for dette towork.
  • Du kan definere tilpassede priser for produktene dine i differentcountries.

    Beskrivelsen delen krever du å legge et produkt tittel, beskrivelse og bilde for produktet i appen som vist i skjermbildet nedenfor.

    Merk at det kan takeone eller to timer å behandle ditt bidrag før produktet er publisert.

    3. Oppdater Søknad Manifest

    Det er på tide å oppdatere programmet manifest ved å legge App IDand Publisher GUID, som du kopierte fra Windows Phone utvikleren portal. Bruke SolutionExplorer
    av prosjektet, bla til Egenskaper Kjøpe og finne WMAppManifest.xml.

    Visual Studio tildeler en tilfeldig ProductID og Publisher ID når du oppretter et nytt prosjekt, som du trenger for å changeby kommer til Emballasje kategorien
    . Ifyou er rettet kun Windows Phone 8.1, så må du oppdatere Package.appmanifest
    i tillegg til WMAppManifest.xml.

    4. List In-App-produkter i App

    App bruker in-app purchaseAPI tilgjengelig i Windows Phone SDK å hente produkter og liste dem. Theuser har nå en mulighet til å kjøpe disse produktene fra i app.Depending på programmet du bygger, kan det være lurt å liste specificproducts på forskjellige steder, men for formålet med demonstrasjonen let'sdisplay alle produkter assosiert med app og håndtere kjøpsprosessen.

    Vi trenger en ItemsControl å holde produktene. Følgende kode snippetshows hvordan du kan definere data mal av din ItemsControl og binde productsto det. Legg merke til at de kjøper
    knappen isvisible bare hvis brukeren ikke har kjøpt produktet. Føl deg fri til å spille withthe data mal for å gjøre det mer attraktivt
    < ItemsControl x. Name = "pics" > < ItemsControl.ItemTemplate > < DataTemplate > < StackPanel > < Grid > < Grid.ColumnDefinitions > < ColumnDefinition width = "*" /> < ColumnDefinition width = "*" /> < /Grid.ColumnDefinitions> < Bilde Margin = "4" Source = "{Binding imgLink}" /> < StackPanel Grid.Column = "1" Margin = "0,30,0,0" > < TextBlock Forgrunn = "hvit" FontWeight = "ExtraBold" Text = "{Binding navn}" /> < TextBlock Forgrunn = "hvit" FontWeight = "Normal" Text = "{Binding Status}" /> < Button Content = "Get it" Synlighet = "{Binding BuyNowButtonVisible}" klikk = "ButtonBuyNow_Clicked" Tag = "{Binding nøkkel}" /> < /StackPanel > < /Grid > < /StackPanel > < /DataTemplate > < /ItemsControl.ItemTemplate> < /ItemsControl >

    The public class ProductItem
    lagrer all informationrelated til et bestemt produkt. Det er en ObservableCollection av type ProductItemnamed picItems, som lagrer alle theproducts
    public class ProductItem {public string imgLink {få.; sett; } Public string Status {får; sett; } Public string Name {får; sett; } Public string key {får; sett; } Public System.Windows.Visibility BuyNowButtonVisible {får; sett; }}

    Det neste trinnet er å legge til en funksjon RenderStoreItems
    i koden bak for å liste opp alle produkter forthe søknad. Denne funksjonen gjør anasynchronous oppfordring til LoadListingInformationAsync
    å gjengi produktene for det gjeldende programmet. Funksjonen theniterates gjennom hvert produkt, sjekke sin lisens informasjon og legge ITTO listen. Vi binder navnet, kjøp status, og pris til valglisten anddisplay det til brukeren
    ListingInformation li = avvente Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync ();. Foreach (string nøkkel i li.ProductListings.Keys ) {ProductListing pListing = li.ProductListings [key]; System.Diagnostics.Debug.WriteLine (nøkkel); string status = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive? "Kjøpt": pListing.FormattedPrice; string Imagelink = string.Empty; //picItems er en observerbar samling med globalt nedslagsfelt til MainPage.xaml picItems.Add (ny ProductItem {imgLink = key.Equals ("PremiumVersion") "Images /block-ads.png": "Images /block-ads.png ? ", Name = pListing.Name, Status = status, key = nøkkel, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive System.Windows.Visibility.Collapsed: System.Windows.Visibility.Visible });} pics.ItemsSource = picItems;.

    Vær oppmerksom på at du må angi en korrekt App ID, Publisher ID, og ​​Produkt ID før du kan distribuere prøve prosjekt med denne opplæringen

    Deretter må du legge til clickevent behandleren for kjøp knappen. Funksjonen ButtonBuyNow_Clicked
    initierer kjøpet. Brukeren blir presentert med et kjøp experiencethat er en del av Windows Phone 8-plattformen. Når kjøpet er fullført, aktiveres youcan en låst funksjon eller la brukeren laste ned ekstra innhold. Dette er helt opp til deg
    Button btn = avsender som Button;. String key = btn.Tag.ToString (); (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive) hvis {ListingInformation li = avvente Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); string pid = li.ProductListings [key] .ProductId; string kvitterings = avvente Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (PID, false);}
    5. Etter kjøpet

    Du kan bruke den i app purchaseAPI å nummerere lisensene brukeren har for produkter i appwhen appen er lansert eller gjenopptas, eller etter et kjøp. Dette lar deg avgjøre om brukeren allerede eier produktet han eller hun lisensiert, eller om dens fulfillmentis fortsatt til vurdering. Du kan også hente kvitteringer for produktene purchasedby brukeren om å verifisere om transaksjonen fant sted ved hjelp av GetProductReceiptAsync funksjonen
    string receiptXml = avvente CurrentApp.GetProductReceiptAsync ("PremiumVersion");.

    Sjekk om LicenseInformation.IsActive
    returnerer true for et produkt beforefulfilling et kjøp. Men kallet til denne funksjonen er ressurskrevende, så det er ikke tilrådelig å kalle det på app lansering eller fortsette.

    Når du tenker aproduct kjøpet er fullført, kontrollerer du først at en lisens finnes for thatproduct ID og deretter sjekke for å se om IsActive er sant på den lisensen. Hvis lisens er aktiv da kjøpet skal være oppfylt umiddelbart.
    Bool productStatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses["AdBlocker"].IsActive;

    A mulig scenario hvor i-apppurchases kan være nyttig er når du ønsker å distribuere programmet ditt for å få gratis withads og tillater brukeren å fjerne dem gjennom en in-apppurchase. Her er en artikkel om å implementere en "blokker annonser" -funksjonen ved hjelp av in-app kjøp API. Den samme teknikken kan brukes til å implementere en prøve. Fordelen er at app er oppført i den frie
    kategori i butikken og vil som et resultat får du flere nedlastinger.

    I tilfelle av forbruksvarer, er det ansvaret ofthe app til spore forbruk. Den CurrentApp.LicenseInformation
    gir bare informasjon om lisensen, ikke staten.

    6. Testing In-App Purchases

    Hvis du teste din app i emulator, in-app kjøp er gratis og ingen finansielle transaksjoner skjer. Eachtime du installere app på emulator, er tidligere lagret licenseinformation ryddet

    Det er tre hoved techniquesfor testing in-app kjøp.

  • opprette en Dev Center-beta app og legge beta produkter i app

    legge til mock in-app kjøp mock-biblioteket til løsning

    sette opp en in-app kjøp mock-tjenesten bruker Microsoft Internet Information Services (IIS)


    Konklusjon

    I denne opplæringen, har du lært howto liste produkter i appen og aktiverer en app funksjonen når brukeren kjøper aproduct. Det er mange tilpasninger er mulig med in-app kjøp, og de kan brukes i en rekke scenarier.

    Jeg oppfordrer deg til å gå gjennom In-AppPurchase API oversikt på MSDN. Det er også verdt å ta en titt på alternativer for å teste i-app kjøp evner i din app før du publiserer det på markedet. Føl deg fri til å laste ned opplæringen er kildefilene til å bruke som en referanse.