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.
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:
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.
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:
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.
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.
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 ProductItem
lagrer 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 RenderStoreItems
i 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_Clicked
initierer 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);
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.IsActive
avkastning 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.LicenseInformation
gir bare informasjon om lisensen, ikke staten.
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:
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.