Achizițiile în aplicație reprezintă o modalitate excelentă de a crește veniturile pentru aplicația Windows Phone. În acest tutorial, vă vom arăta cum să implementați achizițiile în aplicație într-o aplicație Windows Phone 8 Silverlight.
Pentru a testa aplicația, va trebui să creați un produs pentru a testa. Aceasta înseamnă că veți avea nevoie de un cont activ de dezvoltator Windows Phone dacă doriți să urmați de-a lungul.
Windows Phone 8 oferă o experiență convenabilă de cumpărare, plăți de încredere, servicii geografice distribuite și instrumente de gestionare a produselor pentru a obține un comerț semnificativ în aplicația dvs. Puteți alege între achizițiile în aplicație și alte opțiuni de plată (de exemplu, PayPal), dar achizițiile în aplicație vă oferă o mai mare flexibilitate pe măsură ce acestea oferă:
În tabloul de bord al portalului de dezvoltatori Windows Phone, navigați la Detalii fila aplicației dvs. și notați-o ID-ul aplicației. De asemenea, apucați-vă Editorul GUID de la portalul pentru dezvoltatori. Veți avea nevoie de aceste detalii mai târziu pentru a actualiza fișierul manifestei de aplicații.
Dacă dezvoltați o aplicație nouă, accesați tabloul de bord și faceți clic pe Trimiteți App pentru a începe procesul de trimitere și pentru a rezerva un nume pentru aplicația dvs. Salvați aceste detalii și puteți să ignorați trimiterea fișierului XAP pentru moment. Rețineți doar ID-ul aplicației din Proprietățile aplicațiilor secțiune.
În cadrul detaliilor aplicației, există o a Produse unde puteți adăuga și gestiona produse în aplicație pentru aplicația dvs. În scopul acestei demonstrații, am creat un produs numit Aplicație Premium.
În portalul de dezvoltatori Windows Phone, trebuie să adăugați proprietățile și descrierea produsului în aplicație. Puteți seta opțional tarifarea personalizată pe diferite piețe pentru produsul dvs..
Trebuie să completați proprietățile produsului dvs. în aplicație, așa cum se arată în următoarea captură de ecran. Amintiți-vă Identificator de produs deoarece veți avea nevoie de aceasta pentru a afișa în aplicația dvs. produse în aplicație.
Iată câteva lucruri care merită să vă amintiți în timp ce adăugați un produs în aplicație:
Secțiunea de descriere vă solicită să adăugați un titlu de produs, o descriere și o imagine pentru produsul în aplicație, așa cum se arată în imaginea de mai jos.
Rețineți că este posibil să dureze o oră sau două pentru a procesa trimiterea dvs. înainte ca produsul să fie publicat.
Este timpul să actualizați manifestul de aplicație adăugând ID-ul aplicației și Editorul GUID, pe care l-ați copiat de pe portalul Windows Phone Developer. Utilizarea Soluție Explorer din proiectul dvs., căutați Proprietăți și localizați WMAppManifest.xml.
Visual Studio atribuie un ID de produs aleatoriu și un ID de editor atunci când creați un nou proiect, pe care trebuie să îl modificați accesând ambalare tab. Dacă vizează numai Windows Phone 8.1, trebuie să actualizați Package.appmanifest pe lângă WMAppManifest.xml.
Aplicația utilizează API-ul de achiziție în aplicație disponibil în setul de instrumente Windows Phone SDK pentru a prelua produsele și a le lista. Utilizatorul are acum opțiunea de a achiziționa aceste produse din cadrul aplicației. În funcție de aplicația pe care o construiți, vă recomandăm să specificați anumite produse în locuri diferite, dar în scopul demonstrației să afișăm toate produsele asociate aplicației și să gestionăm fluxul de cumpărare.
Avem nevoie de un ItemsControl
pentru a ține produsele. Următorul fragment de cod vă arată cum puteți defini șablonul de date al dvs. ItemsControl
și leagă produsele de acestea. Observați că cumpărațibutonul este vizibil numai dacă utilizatorul nu a cumpărat produsul. Simțiți-vă liber să jucați cu șablonul de date pentru al face mai atractiv.
Clasa publică ProductItem
stochează toate informațiile referitoare la un anumit produs. Este o ObservableCollection
de tip ProductItem
numit picItems
, care stochează toate produsele.
clasa publica ProductItem public string imgLink get; a stabilit; șir public Stare get; a stabilit; șir public Numele get; a stabilit; chei publice șir get; a stabilit; sistem public.Windows.Visibility BuyNowButtonVisible get; a stabilit;
Următorul pas este să adăugați o funcție RenderStoreItems
în codul din spate pentru a lista toate produsele pentru aplicație. Această funcție face un apel asincron la LoadListingInformationAsync
pentru a face produsele pentru aplicația curentă. Funcția revine apoi prin fiecare produs, verificând informațiile despre licență și adăugându-l în listă. Legăm numele, starea achiziției și prețul în caseta de listă și îl afișăm utilizatorului.
ListingInformation li = așteaptă Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); foreach (chei de șir în li.ProductListings.Keys) ProductListing pListing = li.ProductListings [cheie]; System.Diagnostics.Debug.WriteLine (cheie); string status = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [cheie] .Este activ? "Achiziționat": pListing.FormattedPrice; string imageLink = string.Empty; // picItems este o colecție observabilă cu o dimensiune globală la MainPage.xaml picItems.Add (new ProductItem imgLink = key.Equals ("PremiumVersion")? "Imagini / bloc-ads.png": "Images / block-ads.png ", Nume = pListing.Name, Status = status, key = key, BuyNowButtonVisible = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [cheie] .IsActive? System.Windows.Visibility.Collapsed: System.Windows.Visibility.Visible ); pics.ItemsSource = picItems;
Rețineți că trebuie să introduceți o valoare corectă ID-ul aplicației, Codul de editor, și Codul produsului înainte de a putea implementa proba de proiect cu acest tutorial.
Apoi, trebuie să adăugați un handler pentru evenimentul de clic pentru butonul de cumpărare. Functia ButtonBuyNow_Clicked
inițiază achiziția. Utilizatorul este prezentat cu o experiență de cumpărare care face parte din platforma Windows Phone 8. Când achiziția este completă, puteți activa o caracteristică blocată sau permiteți utilizatorului să descarce conținut suplimentar. Acest lucru depinde în întregime de dvs..
Buton btn = expeditor ca buton; cheia de string = btn.Tag.ToString (); dacă (! Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses [key] .IsActive) ListingInformation li = așteptați Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync (); șir pID = li.ProductListings [cheie] .ProductId; șir de chitanță = așteaptă Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync (pID, false);
Puteți utiliza API-ul de achiziție în aplicație pentru a enumera licențele pe care le are utilizatorul pentru produsele din aplicația dvs. atunci când aplicația este lansată sau reluată sau după o achiziție. Acest lucru vă permite să determinați dacă utilizatorul deține deja produsul pe care îl deține licența sau dacă împlinirea acestuia este încă în așteptare. De asemenea, puteți prelua chitanțe pentru produsele achiziționate de utilizator pentru a verifica dacă tranzacția a avut loc utilizând GetProductReceiptAsync
funcţie.
string receiptXml = așteaptă CurrentApp.GetProductReceiptAsync ("PremiumVersion");
Verifica vremea LicenseInformation.IsActive
se intoarce Adevărat
pentru un produs înainte de a efectua o achiziție. Cu toate acestea, apelul la această funcție este intensiv pentru resurse, deci este recomandabil să nu-l sunați la lansarea sau reluarea aplicației.
Când credeți că o achiziție de produs a fost finalizată, mai întâi verificați dacă există o licență pentru acel cod de produs și apoi verificați dacă Este activ
este Adevărat
pe acea licență. Dacă licența este activă, atunci achiziția trebuie îndeplinită imediat.
bool productStatus = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses ["AdBlocker"].
Un scenariu posibil în care achizițiile în aplicații pot fi utile este atunci când doriți să distribuiți gratuit aplicația dvs. cu anunțuri și să permiteți utilizatorului să le elimine printr-o achiziție în aplicație. Iată un articol despre implementarea unei funcții de "blocare a anunțurilor" utilizând API-ul de achiziție în aplicație. Aceeași tehnică poate fi utilizată pentru a implementa un proces. Avantajul este că aplicația dvs. este listată gratuitcategorie în magazin și va obține, prin urmare, mai multe descărcări.
În cazul produselor consumabile, este responsabilitatea aplicației de a urmări consumul. CurrentApp.LicenseInformation
oferă doar informații despre licență, nu despre stat.
Dacă testați aplicația în emulator, achizițiile în aplicație sunt gratuite și nu au loc tranzacții financiare. De fiecare dată când reinstalați aplicația în emulator, informațiile despre licența stocate anterior sunt șterse.
Există trei tehnici principale pentru testarea achizițiilor în aplicație:
În acest tutorial, ați învățat cum să listați produsele în aplicație și să activați o caracteristică a aplicației atunci când utilizatorul achiziționează un produs. Există multe personalizări posibile cu achiziții în aplicații și pot fi utilizate într-o varietate de scenarii.
Vă încurajez să treceți prin prezentarea generală API In-AppPurchase pe MSDN. Merită, de asemenea, să examinați opțiunile pentru a testa capabilitățile de achiziție în aplicație în aplicația dvs. înainte de a le publica pe piață. Simțiți-vă liber să descărcați fișierele sursă ale tutorialului pentru a le utiliza ca referință.