前言
应用内购买(In-App Purchase)对于开发者来说绝对是一个非常重要的功能,它提供了一个便捷的入口供用户来购买付费。在IAP盛行之前的游戏运营商一般都是通过接入第三方支付入口来收费。之前做过的一个安卓手机游戏服务器(Asp.Net),他们采用的付费方式有两种,一个是接入支付宝的接口,让用户可以通过支付宝来付费。还有一种是通过手机运营商来付费,先由用户把钱付给运营商,运营商通过你注册的服务器的API告知该用户已付费。在Windows Phone 8中就不用担心第三方付费服务器的问题了,微软为我们提供了一个付费的功能,也就是之前提到的IAP,付费的整个过程都是由微软的交易平台(Microsoft Commerce Platform)来提供支持的,通过Windows.ApplicationModel.Store命名空间下的API可以非常容易的实现IAP的功能,省去了很多接入第三方付费接口的调试时间。下面这张图介绍了创建和购买虚拟物品的流程。
a/b:开发者通过Dev Center注册自己的付费App和所有虚拟物品信息。如果商品要从服务器下载,那么你需要自己提供这个服务器。
c/d:开发者拉取Store上注册的虚拟物品并展示在App内,由用户来点击购买。
e/f:微软交易平台告知你的App用户付费成功,并获取电子收据。
g/h:通过微软交易平台提供的收据作为凭证,从你的服务器下载虚拟物品。并告知交易平台该商品已经成功分发。
整个过程还是非常简单清晰的,需要注意的是如果你的游戏非常的轻量,比如是个单机游戏,那么虚拟商品就不需要服务器的支持,电子收据这步可以省略掉。大型的手机游戏一般都会有后端服务器的支持。电子收据为我们从服务器下载插件时提供了有效的凭证。下面我们就先省略掉注册应用和虚拟物品这两个步骤,做一个简单客户端IAP的例子。
private async void LoadListingInformationAsync() { try { // Query the Windows Phone Store for the in-app products defined for the currently-running app. var listingInformation = await CurrentApp.LoadListingInformationAsync(); foreach (var v in listingInformation.ProductListings) { Products.Add(new ProductViewModel() { Title = v.Value.Name, ProductId = v.Value.ProductId, ImageUri = v.Value.ImageUri }); } } catch { // An exception is expected to be raised by CurrentApp.LoadListingInformationAsync() //when it is not called from an app installed from the Windows Phone Store. } }
上面这段代码就是异步的从Store中获取我们事先注册好的虚拟物品集合。CurrentApp是一个非常重要的类,它包含了所有主要操作虚拟物品的方法。通过上面的方法获取到虚拟物品的信息后,我们就可以对数据做进一步的处理,例子当中用一个ObservableCollection类型的集合Producets来保存数据,并通过databinding将其展示在商品页面上,供用户选择购买。
private async void PurchaseProduct(string productId) { try { // Kick off purchase; don't ask for a receipt when it returns await CurrentApp.RequestProductPurchaseAsync(productId, false); // Now that purchase is done, give the user the goods they paid for // (DoFulfillment is defined later) //DoFulfillment(); } catch (Exception ex) { // When the user does not complete the purchase (e.g. cancels or navigates back from the Purchase Page), // an exception with an HRESULT of E_FAIL is expected. } }
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 服务器
, 微软
, 手机app接口开发
, app接口开发
, hresult e_fail
, 用户
, in-app purchase
, iap
, 应用内购买
, app接口支付宝手机
, 后端服务windows phone
, 一个
The
windowsphone应用商店、windows phone应用、windows phone8应用、windows phone 10应用、windowsphone下载应用,以便于您获取更多的相关知识。