一个完整的iOS购买交易流程图:
公司的项目主要为游戏,游戏工程对接iOS支付时主要使用sdk的方式,所以在上图中标注了『sdk服务端』,『sdk客户端』,『游戏服务器』和『游戏客户端』,如果项目为app,则只用app客户端和服务端即可,向服务端获知订单合法性和确认发放道具均由客户端执行。
游戏项目都会用到苹果内购IAP(In App Purchases)的功能,整理了下自己的相关代码,还有在iap接入游戏过程中遇到过的一些问题,在这里分享一下。
公司内部有商务平台人员负责开发者账号相关功能,如何去创建App ID和product ID,就不叙述了,主要强调下product ID的类型。
product ID可以选择三种类型,
non-consumable(购买一次,永久使用,非消耗品)
comsumable(多次购买,消耗品)
subscription(自动续款,订阅。目前多适用于杂志或者新闻类型的app,包含自动续费和非消耗性续费,如月卡等)。
目前常用到的是non-consumable和comsumable两种类型,主要区别是是non-consumable只能购买一次,comsumable可以无限制购买。如果游戏中有non-consumable这种类型的商品,需要在游戏中提供一个restore按钮,来实现”恢复购买”功能,否则应用审核会被拒(亲身经验ÿ