iOS应用开发者需知的IAP功能运作机制

来源:互联网 发布:java 7新特性 编辑:程序博客网 时间:2024/05/02 01:36

苹果Store Kit工具可助开发者实现应用程序与App Store的信息交流。应用程序可使用Store Kit接收将在App Store应用中出售的商品本地信息。应用程序会向用户展示这些信息,以便后者购买虚拟商品。当用户打算购买某项物品时,应用程序就会调用Store Kit搜集用户的支付信息,下图是基本的应用商店IAP(应用内置付费功能)运作模式。

Store Kit API仅是开发者向应用程序添加商店功能的步骤之一。开发者在这个过程中需考虑好如何追踪自己打算发布的产品相关信息,应用程序如何向前端用户展现商店内容,应用程序如何向用户传送其购买的商品。下文主要介绍开发者如何创造产品和向应用程序添加商店的流程。

产品

这是应用程序内的商店向用户出售的一切功能,与创建新应用程序一样,它也通过iTunes Connect上传到App Store。开发者可通过IAP功能出售4种不同的产品:

*电子书、杂志、照片、艺术品、游戏关卡、游戏角色及其他可通过应用程序传递的数字内容。

*可解琐或扩展应用程序中已存在内容的功能性产品。例如,开发者可在一款游戏中发售多种支持用户购买的小型游戏。

*允许用户性付费获取的一次性服务,例如录音服务。用户每次使用该服务都需要再次付费。

*让用户获得扩展内容或服务的订阅内容。例如,某些应用程序以包月制方式提供金融信息或者在线游戏服务。

IAP提供了一个创建产品的通用机制,开发者可自行决定如何部署产品的规格。但开发者在设计含IAP功能的应用程序时仍需注意以下几点:

*在应用程序中只能出售数字商品或服务,不可使用IAP发售实体商品或服务。

*不可供应那些充当中间货币的商品,必须让用户清楚自己购买的具体商品或服务性质。

*所提供内容不可含有色情、过激言论、诽谤或赌博的信息(游戏邦注:模拟博彩内容除外)。

开发者可以查阅苹果开发授权条款了解有关IAP功能的详情。

在App Store注册产品信息

开发者欲通过应用程序出售的每件产品都必须通过iTunes Connect向苹果登记,需提供产品名称、产品描述、定价以及其他与App Store和应用程序相关的元数据。

需使用独特的产品标识符来区分每一项产品,因为Store Kit与App Store交流信息时,会使用产品标识符调取开发者提供的产品配套数据。然后,用户打算购买某项产品时,应用程序就可使用产品标识符识别出即将出售的产品。

App Store支持的IAP产品内容包括:

*用户会重复购买的可消耗产品。例如,一次性服务就属于可消耗产品的范畴。

*用户一次性购买的非可消耗产品。用户购买这种产品之后,与其iTunes帐号相关的所有设备都可获取这项产品。Store Kit支持多个设备获取这种非可消耗产品。

*可自动更新的订阅服务,与非可消耗产品一样,它也可以使用于用户同个帐号的多个设备。不过这种服务与前者略有不同,当开发者在iTunes Connect创建可自动更新订阅服务时,需要选择订阅持续时间。每次订阅到期时,App Store会自动为其续期。如果用户不希望续期,他们就无法在订阅服务到期时继续获取内容。在这种情况下,应用程序必须能够验证用户的订阅服务是否处于活跃状态,并接收最近更新的交易收据。

*免费订阅服务可通过Newssand向用户提供免费的订阅内容。假如用户注册了免费订阅服务,其同个帐号的所有iOS设备均可获取这种订阅内容。这种服务没有期限,并且仅限于支持Newsstand功能的应用程序。

*非可更新的订阅服务,这是一种有期限的创建内容机制,它与可自动更新订阅服务的主要区别如下:

  • 开发者在iTunes Connect中创建内容的时候不会生成订阅条款,需由开发者的应用程序负责向用户提供这些信息。多数情况下,开发者的产品描述中需包括订阅条款的内容。
  • 用户可多次购买非可更新订阅服务(这一点与可消耗产品相似),App Store不会自动更新这项服务。开发者需自行在应用程序中处理其更新流程,应用程序必须能够识别已过期的订阅服务,并提醒用户再次付费续期。
  • 开发者需向用户同个帐号的所有设备提供这项服务。非可更新订阅服务无法通过Store Kit自动同步到用户的所有设备上,开发者只能亲自完成这一操作。例如,多数订阅服务依靠外部服务器传送内容,开发者的服务就需要部署能够识别用户,并将付费用户与其所购买项目相匹配的机制。

开发者还可以通过iTunes Connect开发者指南了解App Store产品注册流程的详情。

产品传输途径

应用程序传递产品的机制要取决于其设计和执行方式。这里有两种模式可供选择:内置商品模式和服务器模式。这两种模式都可让开发者跟进商店所供应的产品列表,并向用户成功传递其购买的商品。

内置模式

在这种模式中,开发者需传递的所有商品都要嵌入应用程序中。这种模式多用于解决应用程序中的功能。开发者也可以使用这种模式传递应用程序包中的内容。该模式的一大优势在于它可以立即向用户供应其所需产品,其内置的商品多属于非可消耗产品。

注意:IAP功能并不支持应用程序在用户交易成功之后再修复补丁,假如产品需要应用程序包进行调整,那么开发者就只能选择向App Store上传更新版本的应用程序。

应用程序会储存应用程序包中的产品标识符以识别产品,苹果推荐使用属性列表跟踪这些内置商品的产品标识符。以内容为导向的应用程序可使用这种模式添加新内容,而无需修改应用程序的原始资料。

用户交易成功后,应用程序就必须解琐该功能,并向用户传递其购买的商品。最简单的解琐功能就是更改应用程序的参数选择。用户备份自己的iOS设备时,应用程序参数选择也会随之备份。应用程序可建议用户交易完成后进行备份,以免丢失交易信息。

服务器模式

在这种模式中,开发者需准备一个可向iOS应用程序传递产品的服务器。这种模式适用于订阅、服务和内容这类商品,因为这些商品可在无需更改应用程序包情况下传输数据。例如,游戏向应用程序传递新的场景(谜题或者关卡)。Store Kit并没有定义服务器的设计,或者服务器与iOS应用程序之间的交互方式。开发者需自行设计服务器及其与iOS应用程序互动的方式。另外,Store Kit并不提供识别特定用户的机制,这就要求开发者自创识别iOS用户的机制。

苹果建议开发者通过自己的服务器获取产品标识符,而非将其纳入属性列表。这样开发者就可以在无需更新应用程序的情况下灵活添加新产品。

在服务器模式中,应用程序会获取与交易相关的收据,然后将其发送至开发者服务器。服务器会验证这些收据信息,将其解码后再决定将哪项产品传送到应用程序。

采用服务器模式需考虑到安全性和可靠性问题,开发者需测试整个环境以确保数据传输过程不存在安全隐患。

虽然非可消耗产品可使用Store Kit的内置功能复原,但非可更新订阅服务却需要通过服务器才能还原。开发者需注意记录并向用户还原非可更新订阅服务的信息。可消耗产品可以选择通过服务器追踪交易信息,如果某项可消耗产品是一项由服务器供应的服务,那么开发者就需支持同个用户帐号的多个设备获取这些内容。

文章出自:gamerboom

英文出自:developer.apple


原创粉丝点击