iOS app内购IAP(In-App Purchase)开发预备知识
所属分类:ios | 发布于 2023-04-03 15:33:19
下一步就要进行内购功能的开发,这里记录一下内购相关的预备知识。
基础知识
1、IAP概念
IAP全程In-App Purchase,是指苹果App Store的应用内购买,是苹果为App内购买虚拟商品或服务提供的一套交易系统。
2、IAP类型
IAP是一套商品交易系统,而非简单的支付系统。每一个购买项目都需要在App的itunes connect后台创建一个商品,提交给苹果审核,审核通过后,购买项目才会生效。
目前在创建IAP商品时,主要有4种类型可供选择:
2.1、Consumable products(消耗型商品)
该类型适用于多次购买的消耗型项目,如游戏道具、虚拟币等。
2.2、Non-comsumable products(非消耗型商品)
该类型适用于一次购买永久有效的项目,如电子书、游戏关卡等。
该类型项目支持跨设备同步和本地restore,比如说,用于在某个App中购买了一本书,可在所有相同AppleID设备的App中免费获取这本书,而不需要借助App本身的账号体系,即使在App中删除了这本书,也可以免费重新获取。
2.3、Non-renewable subscriptions(非续期订阅)
该类型适用于固定有效期的非自动续费项目,如云音乐的会员和一些视频App的会员。没有跨设备同步和本地restore机制,用户可以多次购买。
2.4、Auto-renewable subscriptions(自动续期订阅)
该类型适用于自动续费的订阅项目,如Apple Music的按月订阅,用户购买后每月自动续费,直到用户手动取消或者开发者下架IAP项目。
类型Non-consumable products,该类型也支持跨设备同步和本地restore机制。
3、定价
4、分成
App Store上的付费App和App内购,苹果与开发者默认是3/7分成。实际上, 在某些地区苹果与开发者分成之前需要先扣除交易税,开发者的实际分成不一定是70%。
5、结算
针对IAP的交易收入,苹果一般以5周(每年1/4/7/10)或4周(其余月份)作为一个结算周期,并在每个结算周期结束后第33天向开发者付账。
开发相关
1、IAP项目创建
1.1、在开发IAP之前需要先在苹果后台创建IAP商品,并按规范填写product id、商品名称、价格、截图等信息。
1.2、如果App当前版本支持新增的IAP项目,可不用发版直接提交IAP审核。如果需要App新功能配合,则需要和App版本一起提交。
1.3、已创建的IAP除了product id之外的所有信息都可以修改,如果删除了一个IAP,则无法再创建一个相同product id的IAP,也意味着该product id永久失效。而product id一般有特定的命名规则,用来标示App内的购买项目。
1.4、reference name是给开发者自己看的,display name会在IAP支付流程的确认购买系统弹窗中展示给用户,而且不能随意修改(修改需要重新提交IAP审核)。
1.5、如果IAP随App版本一起提交审核,有问题时所有新提交的IAP项目和App版本会同时被拒,再次提交App审核时,一定要记得重新提交所有IAP项目(每个IAP还需要手工编辑一下才能重新提交),否则苹果无法继续审核。
2、IAP支付流程
不同类型的IAP支付流程会有一些小差异(主要是restore机制),下面以最常用的Consumable products和Non-renewable subscriptions类型为例,来说明一下IAP的支付流程:
2.1、程序向服务器发送请求,获得一份商品列表。
2.2、服务器返回包含产品标志符的列表。
2.3、程序向App Store发送请求,得到产品的信息。
2.4、App Store返回产品信息。
2.5、程序把返回的产品信息展示给用户(App的store界面)。
2.6、用户选择某个产品。
2.7、程序向App Store发送支付请求。
2.8、App Store处理支付请求并返回交易完成信息。
2.9、程序从信息中获得数据,并发送给服务器。
2.10、服务器记录数据,并进行审(我们的)查。
2.11、服务器将数据发送给App Store来验证该交易的有效性。
2.12、App Store对收到的数据进行解析,返回该数据和说明其是否有效的标识。
2.13、服务器读取返回的数据,确定用户购买的内容。
2.14、服务器将购买的内容传递给App。