Daniel Vittek

Vývojářský blog - Daniel Vittek

Podle kategorie

IN-APP PRODUCT, C#, WINRT, DÍL 1.

Daniel Vittek       16. 2. 2016             3188 zobrazení

V dnešním díle se podíváme na nákupy z aplikací. Rozdělíme si je do dvou základních kategorií a vysvětlíme, jak nákupy z aplikací simulovat.

Nákupy z aplikací jsou pro malé -ale i nemalé- vývojáře jednou z nejlepších cest, jak na své práci vydělat nějaké peníze. V dnešní době je to dokonce jediný způsob, jak na určitých platformách na aplikaci něco vydělat. Určitě znáte spousty aplikací a her na mobilní, či tabletové platformě, které obsahují spoustu reklam, které si za malý poplatek můžete vypnout, nebo exkluzivní produkty, často je to například nová úroveň hry. Klasický příklad jak můžeme vydělat na aplikaci a vyhnout se pirátům (ano stále jsou tu tací, kteří nezaplatí za sebelepší aplikaci ani cent a radši jí ukradnou).

Máme 2 kategorie produktů. První kategorie “consumable“ jsou například ve hrách speciální mince, za které si uživatel může nakupovat malé vylepšení (například design postavičky). Do druhé kategorie spadají tzv. “durable“, věc kterou si jednou koupíme a můžeme jí využívat třeba na vždy (například speciální zbraň pro postavičku ve hře).

Ke konkrétnímu kódu a podrobnější problematice se dostaneme v příštím díle, ale rád bych ještě zmínil několik drobností.

Je potřeba si uvědomit, že na WinRT (na rozdíl od Silverlight) nemáme možnost testovat nákupy pomocí knihovny “Mock IaP“ a v lokální debug verzi nám nákupy NEBUDOU FUNGOVAT! Máme tedy na výběr ze dvou možností, jak implementaci IaPs otestovat. Já osobně preferuji kombinovat obě varianty, ale pokud jde ale jen o malou aplikaci s malou zákaznickou základnou, vystačíte si i s první variantou.

První varianta testování využívá tzv. “CurrentAppSimulator“. Funguje to tak, že namísto aby aplikace získávala informace o produktech, které vlastníme a které jsou k dispozici ke koupi ze Store, získává je z lokálního XML souboru.

Implementace je vskutku jednoduchá. Doporučuji kód rozdělit pomocí ‘#if DEBUG‘ podmínek. Takže například LicenceInfo se bude načítat takto:

#if DEBUG
var _licInfo = CurrentAppSimulator.LicenseInformation;
#else
var _licInfo = CurrentApp.LicenseInformation;
#endif

Simulátor inicializujeme takto:

StorageFolder proxyDataFolder = await Package.Current.InstalledLocation.GetFolderAsync("Data");
StorageFile proxyFile = await proxyDataFolder.GetFileAsync("WindowsStoreProxy.xml");
await CurrentAppSimulator.ReloadSimulatorAsync(proxyFile);


XML soubor jako takový vypadá například takto:

<?xml version="1.0" encoding="utf-16" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>988b90e4-5d4d-4dea-99d0-e423e414ffbc</AppId>
      <LinkUri> </LinkUri>
      <CurrentMarket>en-gb</CurrentMarket>
      <AgeRating>12</AgeRating>
      <MarketData xml:lang="en-gb">
        <Name>App with several in-app products</Name>
        <Description>Sample app for demonstrating an expiring in-app product and a consumable in-app product</Description>
        <Price>0.00</Price>
        <CurrencySymbol>£</CurrencySymbol>
      </MarketData>
    </App>
    <Product ProductId="MORE_CASH_1000" LicenseDuration="0" ProductType="Consumable">
      <MarketData xml:lang="en-gb">
        <Name>Consumable Item</Name>
        <Price>0.99</Price>
        <CurrencySymbol>£</CurrencySymbol>
      </MarketData>
    </Product>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
  </LicenseInformation>
  <!--
  <ConsumableInformation>
    <Product ProductId="MORE_CASH_1000" TransactionId="00000001-0000-0000-0000-000000000000" Status="Active" />
  </ConsumableInformation>
  -->
</CurrentApp>


Druhý způsob je vytvoření beta aplikace. Vše se implementuje stejně, jako později do normálního vydání s tím rozdílem, že můžeme kontrolovat, kdo má do beta aplikace přístup. Nejlepší způsob je v betě vytvořit produkt, který je zadarmo a zkusit ho “nakoupit“ sám.

V příštím díle se podíváme na konkrétní implementaci a problematiku durable & consumable produktů a vysvětlíme si řešení free / pro & ads / ads free verzemi aplikace.

Toť pro dnešní díl vše a jako vždy přeji hodně štěstí a málo bugů! :)

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

Testování IAP

V lokální debug verzi IAP testovat jdou, aplikace ale musí být asociovaná se Storem, nebo dokonce musí projít certifikací první submission. Nevím s určitostí jak to přesně je, ale IAP mi fungují i v případě, kdy je aplikace nasazená z Visual Studia.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Máš pravdu, chybička se vloudila. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback