In This Chapter
Storing credit and debit cards in the Wallet
Using .NET’s new asynchronous awaitable feature in WCF
A workaround for the missing awaitable operations in service reference code generation
Deep-linking from Wallet items
Keeping Wallet items up to date using background agents
Using Base-64 image encoding to prevent data transmission errors
Saving loyalty cards and coupons in the Wallet
The Wallet Hub is the home for all purchases on the device. It allows for contactless payments, deals, loyalty cards, in-app purchases, and credit and debit cards. Rather than having a list of individual apps that offer payment capabilities, the Wallet Hub provides an integrated and consistent account management experience that replaces your physical wallet in your pocket and also offers live updates on your accounts and access to nearby deals.
As a developer, you can create apps that integrate with the Wallet Hub. You can store, retrieve, and manipulate Wallet items from your app or use a background agent to keep your app’s Wallet items up-to-date. You can interact with the user via status messages, and you can provide deep-links back to your app from the Wallet Hub to provide a more purposeful in-app experience.
This chapter begins with an overview of the Wallet Hub; its features and UI elements. You then look at storing payment instruments in the Wallet and at keeping them up-to-date using a background agent. You see how to leverage a WCF service using the new asynchronous await features of the .NET framework, and a workaround for a missing feature of the WCF service client code generation for Windows Phone.
The chapter then looks at storing membership cards, such as loyalty cards, in the Wallet Hub.
Finally, the chapter looks at placing deals in the Wallet. You see how to retrieve a list of deals from a WCF service and then how to allow the user to save a deal to the Wallet. You see how to dynamically present a relevant deal directly to the user using a background agent.
The source code for this section is located in the Wallet directory of the downloadable sample code.
18.118.186.143