Crazy fun tools and behaviors for building In-App Purchase, Trial Mode, and Rate My Application scenarios into XAML Windows Store applications. This library contains an abstraction layer for the communication to the Store APIs, and several XAML Behaviors. Written in C# for WinRT.
Talking to the store is basically boiler plate code for most applications. Creating an abstract layer to determine whether or not to use the CurrentAppSimulator
, or the CurrentApp
objects is time consuming. This library takes the guess work out of the abstractions, and allows the user to do standard tasks without any code using behaviors and live, bindable lists.
- WindowShopping.dll - home for core functionality, and the abstraction layer to communicate to the store API's
- WindowShopping.UI.dll - home for UI functionality, ViewModels, and Behaviors
StoreContainer
- the static class containing the active store API repositoryCurrentAppRepository
- a repository which does all of the I/O between the store and the applicationCurrentAppSimulatorRepository
- found in the sample application, this allows debugging several store scenarios when building the applicationConsumableFulfillmentAction
- tells the Store when a consumable in app purchase purchased product has been fulfilledProductPurchaseAction
- performs an in app purchase for a specified productProductStatusBehavior
- performs actions based on the purchase status of a productPurchaseFullAppAction
- performs a purchase for the full version of the applicationRateApplicationAction
- sends the user to the store to rate the applicationTrialModeBehavior
- performs actions based on the purchase status of the applicationLiveAppInfo
- a bindable class which keeps track of the status of the applicationLiveConsumablesListing
- a bindable list which keeps track of the Unfulfilled ConsumablesLiveProductListing
- a bindable list which keeps track of the products available to purchase
Included in this repo is WindowShopping.Samples.sln
which contains a Windows application using all of the behaviors and live classes. It also listens to the broadcasting log from the active abstraction layer.
The sample overrides the default CurrentApp
object with the CurrentAppSimulator
during debugging by using the CurrentAppSimulatorRepository
.