苹果在2021年的全球开发者大会(WWDC)上展示了全新的StoreKit 2,为应用内购买带来了诸多改进。这个更新不仅解决了之前版本的问题,还引入了一系列关键功能,让开发者的工作更加顺畅。
API升级与新特性
StoreKit 2的亮点在于引入了Swift 5.5的语法,为开发者提供了更直观的API。例如,获取商品的示例代码从SKProductsRequest更新为:
购买接口也得到了增强,如purchase(options: Set),现在支持永久保存在Transaction中的appAccountToken,方便存储订单信息。
新API提供了对订阅和退款的更精细管理,包括判断商品是否适合首购优惠的isEligibleForIntroOffer函数,以及获取商品类型的API。
核心改进
StoreKit 2解决了之前版本中的一些痛点,如后台退款信息不可查看、沙盒测试退款功能缺失和orderID关联困难。现在,开发者可以主动获取用户交易状态,无需在支付队列等待,从而提高用户体验。
退款功能的增强允许用户在App内提交退款申请,开发者可以接收到实时通知。此外,通过同步不同设备的购买记录,开发者可以使用sync() API,但需要验证Apple ID。
订阅与管理
StoreKit 2提供了订阅状态的实时管理,开发者可以直接获取更新的订阅信息,同时支持在App内管理订阅。这使得开发者可以更好地控制和追踪用户的订阅状态。
服务器与客户端的协同
StoreKit 2引入了Server to Server功能,加强了服务器间的通信,开发者可以验证状态、跟踪内购活动、管理订阅和退款信息。这使得开发者能够更高效地处理用户行为产生的交易更新,如重新安装应用后未完成的交易。
家庭共享与安全性
StoreKit 2支持家庭共享功能,非消耗和自动续订的订阅有了更清晰的用户角色标识。此外,Sandbox测试环境也进行了优化,包括回调URL、地区设置和安全性提升。
总结
StoreKit 2不仅提升了性能,还简化了购买流程,对于新应用和采用Swift5.5的开发者尤为友好。尽管对于旧应用和仍在使用StoreKit 1的客户端,迁移可能需要一些时间,但StoreKit 2的优势明显,尤其是对于处理交易丢失的问题和更新后的通信流程。
在选择StoreKit API时,务必考虑你的应用需求,如批量采购、旧版本兼容性以及Swift5的使用情况。StoreKit 2的出现,无疑为开发者提供了更高效和灵活的解决方案。