日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows Phone中Wallet钱包的使用

發(fā)布時間:2024/6/18 windows 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Phone中Wallet钱包的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 前言

???? Windows Phone 8中加入了錢包Wallet這個功能,這個功能非常的有意思,開發(fā)者可以通過Wallet提供的API創(chuàng)建獲取Wallet中的商品。統(tǒng)一管理用戶的收集優(yōu)惠券、信用卡、成員資格、會員卡和一些自定義的信息。甚至可以將自己開發(fā)的應用集成到系統(tǒng)的Wallet中,不僅方便了用戶的管理,還可以讓用戶直接從Wallet中得到關聯(lián)的應用。這個關聯(lián)的功能非常適合一些筆記類、旅行類、金融管理類的應用,比如,印象筆記、有道筆記、挖寶和攜程、藝龍。

  • Deals、Membership和Transactions

?? 在使用Wallet的API之前,你必須要開啟應用的Wallet能力,在WMAppManifest.xml中勾選ID_CAP_WALLET,如下圖。

??? Deals是一種常用的Wallet類型,你可以理解為是一個優(yōu)惠劵的集合,你可以在你的應用內創(chuàng)建優(yōu)惠劵信息并將其添加到系統(tǒng)的Wallet中,并提供了更新、刪除的功能。

var deal = new Deal(guid); deal.MerchantName = "Contoso"; deal.MerchantAddress.Business1.Street = "boulevard Roi Albert II"; deal.MerchantAddress.Business1.PostalCode = "1030"; deal.MerchantAddress.Business1.City = "Schaerbeek"; deal.MerchantAddress.Business1.CountryRegion = "Belgium"; deal.OfferWebsite = new Uri("http://www.contoso.com"); deal.IssuerName = "Contoso"; deal.StartDate = DateTime.Now.Date.AddDays(1); deal.ExpirationDate = deal.StartDate.Value.AddMonths(2); var barcode = new BitmapImage(); barcode.SetSource(Application.GetResourceStream(new Uri("Assets/barcode.bmp", UriKind.Relative)).Stream); deal.BarcodeImage = barcode; var logo99 = new BitmapImage(); logo99.SetSource(Application.GetResourceStream(new Uri("Assets/DealIcon99.png", UriKind.Relative)).Stream); deal.Logo99x99 = logo99; var logo159 = new BitmapImage(); logo159.SetSource(Application.GetResourceStream(new Uri("Assets/DealIcon159.png", UriKind.Relative)).Stream); deal.Logo159x159 = logo159; var logo336 = new BitmapImage(); logo336.SetSource(Application.GetResourceStream(new Uri("Assets/DealIcon336.png", UriKind.Relative)).Stream); deal.Logo336x336 = logo336; deal.CustomProperties.Add("Perso", new CustomWalletProperty("Custom field", "This is a custom message.")); await deal.SaveAsync();

????? 上面我們就創(chuàng)建了一個deal并通過SaveAsync方法將其保存到了Wallet中。deal的Logo有三種格式,分別對應不同分辨率的手機。CustomProperties是一個字典類,來保存自定義的信息。

var walletItems = await Wallet.GetItemsAsync(); var item = walletItems.FirstOrDefault(s => s.Id == guid); if(item != null) {Wallet.Remove(item); }

?????? GetItemsAsync方法返回的是一個WallteItemCollection的集合,這個集合是包括我們應用內創(chuàng)建愛你的WalletItem,不包括其他入口創(chuàng)建的WalletItem,所以你只能對自己應用內創(chuàng)建的Item做修改。你可以使用Linq來獲取單個的元素,使用Wallet的Remove方法從Wallet中刪除deal。

?????? Wallet也可以用來支付,通過OnlinePaymentInstrument,PaymentInstrument,WalletTransactionItem可以實現(xiàn)不同需求,下面我們主要講的還是最后一種WalletItem,前兩種需要你的開發(fā)者賬號到MarketPlace注冊。下面我們來創(chuàng)建一個會員卡的WalletItem。

var membership = new WalletTransactionItem("ContosoRewards"); var logo99 = new BitmapImage(); logo99.SetSource(Application.GetResourceStream(new Uri("Assets/Icon99.png", UriKind.Relative)).Stream); membership.Logo99x99 = logo99; var logo159 = new BitmapImage(); logo159.SetSource(Application.GetResourceStream(new Uri("Assets/Icon159.png", UriKind.Relative)).Stream); membership.Logo159x159 = logo159; var logo336 = new BitmapImage(); logo336.SetSource(Application.GetResourceStream(new Uri("Assets/Icon336.png", UriKind.Relative)).Stream); membership.Logo336x336 = logo336; membership.DisplayName = "Contoso Shop"; var task = new AddWalletItemTask {Item = Membership}; task.Completed += taskCompleted; task.Show();private void taskCompleted(object sender, AddWalletItemResult e){if (e.TaskResult == TaskResult.OK){MessageBox.Show("Membership created");}else{MessageBox.Show("Membership not created !");}}

????? WalletTransactionItem需要通過AddWalletItemTask添加到Wallet中,這時我們在Wallet中就可以看到我們剛剛創(chuàng)建的會員卡了。通常我們還要特別記錄會員卡的使用情況,這個記錄也可以記錄在Wallet中,通過WalletTransactionItem的TransactionHistory屬性向Wallet中添加使用記錄。

Membership.TransactionHistory.Add(Guid.NewGuid().ToString(), new WalletTransaction{Description = "超市消費",DisplayAmount = "-100",IsTransactionTimeValid = true,TransactionDate = DateTime.Now});
  • WalletAgent

??? 上面的例子都是我們在自己創(chuàng)建的App內操作Wallet中的數(shù)據(jù),試想如果我們在網(wǎng)站上貼出了一個優(yōu)惠劵,通過自己的App將這個優(yōu)惠劵添加到了Wallet中,如果這個優(yōu)惠劵過期了我們能否在不打開原應用的情況下直接在Wallet中刷新優(yōu)惠劵呢?答案是可以的,這就需要我們在應用內添加一個WalletAgent,如果之前沒有使用過BackgroundAgent,那么最好先自行Google一下BackgroundAgent的原理。

protected override async void OnRefreshData(Microsoft.Phone.Wallet.RefreshDataEventArgs args){foreach (var walletItem in args.Items){var transactionitem = walletItem as WalletTransactionItem;if (transactionitem == null) continue;int balance;if (int.TryParse(transactionitem.DisplayBalance.Split(' ')[0], out balance)){balance = balance + 10;transactionitem.DisplayBalance = balance + " points";transactionitem.TransactionHistory.Add(Guid.NewGuid().ToString(),new WalletTransaction{Description = "Agent operation",DisplayAmount = "+ 10",IsTransactionTimeValid = true,});await transactionitem.SaveAsync();}else{// Error, do something }}base.OnRefreshData(args); }

??????繼承自WalletAgent的代理類只需要重寫OnRefreshData就可以對Wallet中的優(yōu)惠劵做出相應的操作,args.Items代表可以更新的優(yōu)惠劵的項。用戶通過點擊相應優(yōu)惠劵下的刷新按鈕處罰OnRefreshData事件,我們可以通過一個WebService獲取網(wǎng)絡上有關優(yōu)惠劵最新的信息,然后更新Wallet。

  • 將應用集成到Wallet中

??? 為了讓用戶在Wallet的其他選項中發(fā)現(xiàn)你的應用,你需要將你的應用添加為Wallet的擴展。這樣當用戶點擊“添加”時,會使您的應用出現(xiàn)在 Wallet 的“其他”應用列表中。隨后,用戶可以從該列表中挑選您的應用,該應用將在手機上下載并安裝。若要出現(xiàn)在 Wallet 的“其他”列表中,請注冊為一項 Wallet 擴展。擴展在您的應用項目的 WMAppManifest.xml 文件中指定。以下是 WMAppManifest.xml 文件的一個示例,其中包含用于將應用注冊為 Wallet 擴展的 Extension 元素。

<Extensions><Extension ExtensionName="Wallet_app_membership" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5683}" TaskID="_default"/> </Extensions>

???? 在以上代碼中,通過在 WMAppManifest.xml 文件中將一個 Extension 元素添加至 Extensions擴展。

???? ExtensionName: 定義所注冊擴展的類型。注冊為 Wallet 擴展時,此屬性的有效值為:

  • Wallet_app_other – 用于非特定 Wallet 項目

  • Wallet_app_loyalty – 用于信用卡

  • Wallet_app_membership – 用于會員卡

  • Wallet_app_transit – 用于儲值卡

  • Wallet_app_payment – 用于支付卡

???? 即使你的應用將用于多種 Wallet 項目類型也只需要注冊一次,??梢园葱枰詾槎喾N Wallet 項目類型的擴展,方法是在 WMAppManifest.xml 文件中將多個 Extension 元素添加到 Extensions 中。目前,當用戶在Wallet中點擊“其他”以顯示“添加到 Wallet”對話框并查找 Wallet 擴展時,將返回所有擴展,無論注冊為哪種 Wallet 項目類型。

  • ConsumerID: 這是一個固定值,在手機上設置為 Wallet 應用的 id,即 {5B04B775-356B-4AA0-AAF8-6491FFEA5683}。

  • TaskID: 將此設置為 default

?

?

轉載于:https://www.cnblogs.com/ghostwutao/p/3654589.html

總結

以上是生活随笔為你收集整理的Windows Phone中Wallet钱包的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。