Implementere kjøp i app på Windows Phone 8

Kjøp i app er en utmerket måte å øke inntektene for Windows Phone-appen din på. I denne opplæringen vil jeg vise deg hvordan du implementerer kjøp i apper i en Windows Phone 8 Silverlight-applikasjon.

For å teste applikasjonen din må du opprette et produkt som skal testes med. Dette betyr at du trenger en aktiv Windows Phone Developer-konto hvis du vil følge med.

Introduksjon

Windows Phone 8 gir en praktisk kjøpsopplevelse, pålitelige utbetalinger, geografisk distribuerte tjenester og produktstyringsverktøy for å oppnå meningsfylt handel i appen din. Du kan velge mellom kjøp i app og andre betalingsmåter (for eksempel PayPal), men kjøp i app gir deg mer fleksibilitet som de gir:

  • styring av produkter ved hjelp av Windows Phone utviklerportalen
  • geo-distribuerte tjenester og utbetalinger i mer enn 190 land
  • konsekvent kjøpsopplevelse for brukere på tvers av alle apper på telefonen og bevis på ekthet gjennom sikre kvitteringer

1. Få en app-ID

I Windows Dashboard utviklerportalens dashboard, bla til detaljer fanen i appen din og noter deg App ID. Ta også med deg Utgiver GUID fra utviklerportalen. Du trenger disse detaljene senere for å oppdatere applikasjons manifestfilen.

Hvis du utvikler en ny app, går du til dashbordet og klikker på Send inn app å starte innleveringsprosessen og reservere et navn for appen din. Lagre disse detaljene, og du kan hoppe over å sende inn XAP-filen for nå. Bare vær oppmerksom på App ID fra App egenskaper seksjon.

2. Legg til et produkt i appen din

Under søknad detaljer er det a Produkter fanen hvor du kan legge til og administrere in-app-produkter for appen din. For formålet med denne demonstrasjonen har vi opprettet et produkt som heter Premium App

I utviklerportalen for Windows Phone må du legge til produktets egenskaper og beskrivelse i appen. Du kan eventuelt angi egendefinerte priser i ulike markeder for produktet.  

Du må fylle ut egenskapene til ditt in-app-produkt som vist på følgende skjermbilde. Husk Produktidentifikator som du vil trenge det for å notere in-app-produkter i appen din.

Her er noen ting verdt å huske mens du legger til et produkt i appen:

  • Du kan ha flere produkter for en app. Hvert produkt kan være forbrukbart eller holdbart. Varige produkter kan kun kjøpes en gang.
  • Universelle apper kan dele in-app produkter, la brukerne kjøpe en gang og bruke hvor som helst. Produktkategorien din i appen kan variere, men produktnavnet og identiteten skal samsvare for at dette skal fungere.
  • Du kan definere egendefinerte priser for produktene dine i forskjellige land.

Beskrivelsesdelen krever at du legger til en produkttittel, beskrivelse og bilde for in-app-produktet som vist på skjermbildet nedenfor.

Vær oppmerksom på at det kan ta en eller to timer å behandle innlevering før produktet publiseres.

3. Oppdater applikasjonsmanifest

Det er på tide å oppdatere programmanifestet ved å legge til App ID og Utgiver GUID, som du kopierte fra Windows Phone Developer Portal. Bruker Solution Explorer av prosjektet ditt, bla til Eiendommer og finn WMAppManifest.xml.

Visual Studio tildeler en tilfeldig produkt-ID og utgiver-ID når du oppretter et nytt prosjekt, som du må endre ved å gå til emballasje fane. Hvis du bare målretter mot Windows Phone 8.1, må du oppdatere Package.appmanifest i tillegg til WMAppManifest.xml.

4. Liste in-app-produkter i appen din

Appen bruker appen for kjøp av apper som er tilgjengelig i Windows Phone SDK for å hente produkter og liste dem. Brukeren har nå mulighet til å kjøpe disse produktene fra appen. Avhengig av hvilket program du bygger, kan det være lurt å liste spesifikke produkter på forskjellige steder, men for formålet med demonstrasjonen, la vi vise alle produktene som er knyttet til appen, og håndtere kjøpet.

Vi trenger en ItemsControl å holde produktene. Følgende kodestykke viser hvordan du kan definere datasjablonen til din ItemsControl og bind produktene til den. Legg merke til at kjøpetknappen er bare synlig hvis brukeren ikke har kjøpt produktet. Ta gjerne med datasjablonen for å gjøre den mer attraktiv.

             

Den offentlige klassen ProductItemlagrer all informasjon relatert til et bestemt produkt. Det er en ObservableCollection av type ProductItem oppkalt picItems, som lagrer alle produktene.

offentlig klasse ProductItem public string imgLink get; sett;  offentlig streng Status get; sett;  offentlig streng Navn get; sett;  offentlig streng nøkkel get; sett;  Offentlig System.Windows.Visibility BuyNowButtonVisible get; sett; 

Det neste trinnet er å legge til en funksjon RenderStoreItemsi koden bak å liste alle produktene for søknaden. Denne funksjonen gjør et asynkront anrop til LoadListingInformationAsyncå gjøre produktene til gjeldende søknad. Funksjonen gjennomgår deretter gjennom hvert produkt, sjekker lisensinformasjonen og legger den til listen. Vi binder navnet, kjøpsstatusen og prisen til listeboksen, og viser den til brukeren.

ListingInformation li = vent Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); foreach (strengnøkkel i li.ProductListings.Keys) ProductListing pListing = li.ProductListings [key]; System.Diagnostics.Debug.WriteLine (nøkkel); strengstatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive? "Kjøpt": pListing.FormattedPrice; streng imageLink = string.Empty; // picItems er en observerbar samling med global rekkevidde til MainPage.xaml picItems.Add (ny ProductItem imgLink = key.Equals ("PremiumVersion")? "Images / block-ads.png": "Images / block-ads.png" ", Navn = pListing.Name, Status = status, nøkkel = nøkkel, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive? System.Windows.Visibility.Collapsed: System.Windows.Visibility.Visible );  pics.ItemsSource = picItems;

Legg merke til at du må skrive inn riktig App ID, Utgiver-ID, og Produkt ID før du kan distribuere prøveprosjektet med denne opplæringen.

Deretter må du legge til klikkhendelsehandleren for buy-knappen. Funksjonen ButtonBuyNow_Clickedinitierer kjøpet. Brukeren presenteres med en kjøpserfaring som er en del av Windows Phone 8-plattformen. Når kjøpet er fullført, kan du aktivere en låst funksjon eller la brukeren laste ned ekstra innhold. Dette er helt opp til deg.

Knapp btn = avsender som knapp; strengnøkkel = btn.Tag.ToString (); hvis (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive) ListingInformation li = vent Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); streng pID = li.ProductListings [key] .ProductId; streng kvittering = avvente Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (pID, false); 

5. Etter kjøpet

Du kan bruke appen for kjøp av appen til å oppsøke lisensene brukeren har for produktene i appen din når appen startes eller gjenopptas, eller etter et kjøp. Dette lar deg avgjøre om brukeren allerede eier produktet han eller hun har lisensiert, eller om oppfyllelsen hans fortsatt er i ventende. Du kan også hente kvitteringer for produktene som er kjøpt av brukeren, for å verifisere om transaksjonen fant sted ved hjelp av GetProductReceiptAsync funksjon.

streng receiptXml = venter CurrentApp.GetProductReceiptAsync ("PremiumVersion");

Sjekk om LicenseInformation.IsActiveavkastning ekte for et produkt før du oppfyller et kjøp. Kallet til denne funksjonen er imidlertid ressursintensiv, så det er tilrådelig å ikke kalle det ved applansering eller gjenoppta.

Når du tror et produktkjøp er fullført, må du først kontrollere at det foreligger en lisens for den produktidentifikasjonen, og deretter sjekke for å se om Er aktiv er ekte på det lisensen. Hvis lisensen er aktiv, bør kjøpet være oppfylt umiddelbart.

bool productStatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses ["AdBlocker"]. IsActive;

Et mulig scenario der kjøp av apper kan være nyttig, er når du vil distribuere appen din gratis med annonser, og la brukeren fjerne dem gjennom et kjøp i appen. Her er en artikkel om implementering av en "blokkeringsannons" -funksjon ved hjelp av appen for kjøp av apper. Den samme teknikken kan brukes til å gjennomføre en prøveperiode. Fordelen er at appen din er oppført i gratiskategori i butikken og vil som et resultat få deg flere nedlastinger.

Når det gjelder forbruksvarer, er det appens ansvar å spore forbruk. De CurrentApp.LicenseInformationgir bare informasjon om lisensen, ikke staten.

6. Testing av kjøp i app

Hvis du tester appen din i emulatoren, er kjøp i app gratis og ingen finansielle transaksjoner finner sted. Hver gang du installerer appen på nytt i emulatoren, slettes tidligere lagrede lisensinformasjon.

Det er tre hovedteknikker for testing av apper i appen:

  • opprett en Dev Center beta app og legg til beta i app-produkter
  • legg til mock in-app buy mock bibliotek til løsningen din
  • konfigurere en innkjøpsservice for apper ved hjelp av Microsoft Internet Information Services (IIS)

Konklusjon

I denne opplæringen har du lært hvordan du lister produkter i appen og aktiverer en appfunksjon når brukeren kjøper et produkt. Det er mange tilpasninger mulig med kjøp av apper, og de kan brukes i en rekke scenarier.

Jeg oppfordrer deg til å gå gjennom oversikten over i-AppPurchase API på MSDN. Det er også verdt å se på alternativer for å teste innkjøpsegenskaper i appen i appen din, før du publiserer den på markedet. Du er velkommen til å laste ned opplærings kildefiler for å bruke som referanse.