应用程序购买的类型
正如我上面提到的,IAPs针对iOS和Android有几种支付方式适用于我们的移动应用,下面是一个快速概述:
- 消费品:在应用程序生命周期中用完的项目,可以多次购买。例如游戏中的货币、额外的健康和一次性服务,如转录。
- 非消费品:项目的用户拥有无限,只能购买一次。例如书籍,游戏关卡,和额外的应用程序的功能。
- 订阅: 一种可以在一定时间内发生或到期的自动更新或不可再生的重复购买(通常在一个月内)。
我将集中在最常见的类型,非消耗品,在这个博客文章。
入门
在我们开始执行代码之前,我们必须确保我们的应用程序设置得正确,以便开始接受购买。每个平台处理这种不同,但我会覆盖的基本知识。我强烈推荐以下关于iOS和Android的应用程序购买的完整文档,以获取更多信息。
您必须首先确保在iTunes Connect和谷歌Play开发控制台中设置了应用程序。
iOS设置
任何应用程序,需要使用应用内购买需要一个独特的应用程序标识符(不包含通配符允许)为提供资料会自动设置IAP功能。一旦应用程序被创建,我们可以去 Features 一节。创建一个新的IAP,选择“非消费”。然后,我们将填写额外的信息,如产品ID(我们将在代码中使用的唯一标识符)、价格和产品描述。
一旦IAP设置完成,我们就可以开始集成了。
Android 设置
Android更复杂一些,因为我们不能为我们的应用程序添加一个新的IAP,直到我们发布一个包含应用程序的应用程序的版本。它需要包含com.android.vending.BILLING 权限。我们可以通过插入以下内容来添加:
…以下的行…
...
…在AndroidManifest.xml中
然后,应用程序可以在谷歌开发控制台的alpha或beta频道中发布,并且在应用程序的“应用程序购买”部分中还可以添加一个新的IAP。创建IAP作为管理产品是重要的。
然后我们将被带到一个页面,里面详细介绍了IAP的内容。我们必须拯救IAP和设置它为活跃或不工作的时候,我们实现的代码。
购买
随着应用程序的设置,我们现在可以将代码。每个平台都有处理购买不同的机制,但他们每个人都做类似的事情,这就是为什么我的工作与我们的组件团队Jon Dick创造Xamarin,应用收费插件,Xamarin和Windows电话我们一个新的插件, 这简化了整个购买过程。T插件从跨平台API处理购买、订阅、消费和产品信息;如果您需要定制流程,我强烈建议您通过iOS和Android的应用程序购买中的完整文档进行阅读。.
开始的时候,我们会安装应用收费插件(插件。inappbilling)在我们所有的项目,包括我们的便携式类库和移动应用程序项目:
额外的Android设置
Android只需要一点点的建立。我们会在活动,将使购买电话或MainActivity添加以下代码(为Xamarin.Forms):
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); InAppBillingImplementation.HandleActivityResult(requestCode, resultCode, data); }
现在,在我们的应用程序代码或共享代码中,我们可以继续使用一些简单的调用来连接购买账单服务,并尝试购买:
try { var productId = "mysku"; var connected = await CrossInAppBilling.Current.ConnectAsync(); if (!connected) { //Couldn't connect to billing, could be offline, alert user return; } //try to purchase item var purchase = await CrossInAppBilling.Current.PurchaseAsync(productId, ItemType.InAppPurchase, "apppayload"); if(purchase == null) { //Not purchased, alert the user } else { //Purchased, save this information var id = purchase.Id; var token = purchase.PurchaseToken; var state = purchase.State; } } catch (Exception ex) { //Something bad has occurred, alert user } finally { //Disconnect, it is okay if we never connected await CrossInAppBilling.Current.DisconnectAsync(); }
就是这样!在这一点上,我们可以在应用程序设置中存储这些信息,或者在成功购买时将其报告给后端服务。为了测试这个新的代码,我们需要在一个物理设备建立与配置文件,签署运行它或密钥库,为应用。
了解更多
还有很多更多的单边行动计划,包括消费和产品信息,在应用收费插件API暴露。你可以找到在自述文件在GitHub上的项目更多关于。相同的文档将帮助您了解完整的安装、测试和故障排除指南,以便集成应用程序购买。