In-App Purchase 实战
最近公司的APP需要新增苹果内购产品,需要重构一下苹果内购功能。顺便写篇文章总结一下遇到的所有内购的坑。
一、嵌入流程介绍
- 1.1 简介
- 1.2 如何开放内购功能
- 1.3 商品的创建
- 1.4 商品类型
- 1.5 商品定价
- 1.6 产品ID
二、编程指南
- 2.1 常用类说明
- 2.2 流程代码
- 2.2.1 获取产品信息列表
- 2.2.2 购买商品
- 2.2.3 沙盒测试账号
- 2.2.4 校验支付凭证
- 2.3 漏单处理
一、嵌入流程介绍
1.1 简介
IAP(In-App Purchase) 苹果应用内购买。通过在应用程序内部的购买为用户提供额外的内容和服务。属于StoreKit下的功能。
这里就不直译官方文档的内容了,简单总结一下就是购买应用程序内的虚拟产品,例如游戏金币、软件服务、订阅等,凡是苹果App内售卖的虚拟产品都可以走苹果内购买渠道。如果使用苹果内购购买的商品,苹果公司是会分成的(会抽取商品总价的30%)。
本文只介绍在选择使用苹果内购的情况下如果去嵌入内购功能,其他方式本文暂不讨论。
详细原理见官方文档,这里就不过多阐述了。
1.2 如何开放内购功能
一个APP如果想要加入苹果内购,是需要在创建 AppId 的时候勾选 In-App Purchase 功能的(后期也可以修改)。
1.3 商品的创建
需要购买的商品需要在App Store Connect后台注册后方可被程序获取。
流程如下:
使用具有App管理功能的开发者账号登录App Store Connect --> 我的App --> 选择需要添加内购功能的App --> 功能 --> App内购项目 --> 点击右侧“加号“ 即可添加app内购项目了。
首先需要选择商品类型,然后参考名称、产品ID、价格、本地描述 、截图和审核备注等信息。具体每一步都有说明。
1.4 商品类型
对于苹果内购的来说,用户每次购买的都是一个商品,商品和商品之间是有区别的。苹果提供了4中不同种类的商品模式,供开发者选择,也已经足够应付大部分应用的需求了。
- 消耗型项目
只可使用一次的产品,使用之后即失效,必须再次购买。
示例:钓鱼App中的鱼食
- 非消耗型项目
只需购买一次,不会过期或随着使用而减少的产品。
示例:游戏 App 的赛道。
- 自动续期订阅
允许用户在固定时间段内购买动态内容的产品。除非用户选择取消,否则此类订阅会自动续期。
示例:每月订阅提供流媒体服务的 App。