看完了苹果在WWDC上关于内购新特性的两个视频, 写一篇笔记总结一下
本文主要是介绍 Session302 和 Session305 里面的新特性
What's new in StoreKit
1.SKStorefront
这个东西是标识用户的应用商店所设置的国家或者地区, 目前只有一个countyCode属性. 是一个ISO 三位国家代码
苹果举了一个例子, 购买商品的时候主动获取SKStorefront
, 然后确认这个商品是否在当前国家进行提供, 但是感觉它的前提是客户端根据苹果返回的商品进行展示, 而不是根据客户端进行服务器返回的列表进行展示. 感觉这个功能有点鸡肋
2. APP Pre-Orders (应用预定)
这个功能要求iOS11.2 watchOS6.0以上系统
开启预定的app,在上架之前可以上线产品介绍页, 用户可以提前购买或者免费获取该应用. 目测这个比较适合应用于游戏, 现在在App Store->游戏->现可预订的分类, 里面就是可预定的游戏. 那如何标识这个用户是否是提前预定的? 在未来苹果会在收据里提供一个字段标识这个用户(但是这个字段视频里他没说)
详情介绍可以看看这个链接
3. Server-to-server Notification
感觉这个是这个视频的重头戏
Server-to-server 主要是订阅发生变更的时候苹果通过这个请求告诉公司服务器. 比如用户取消订阅, 变更订阅都会受到消息的, 这个东西对订阅来说很重要
3.1 Unified Receipt
这个是Server-to-server 新引入的东西, 可以看出苹果对Server-to-Server很重视, 在秋季的时候通过server-to-server会收到一个新字段unified_receipt
, 这里面包含你期待从传统收据中获取的一切信息, 然后在最新收据中latest_receipt
和latest_receipt_info
不在需要(这个最新收据是苹果给客户端的?). 这个有个重点是这个凭证你要在服务器存储, 苹果并不会保存在app上
看看unified_receipt
包含什么东西
- latest_receipt
- latest_receipt_info
- pending_renewal_info
- status
- environment
和苹果下发给客户端的凭证一样
3.2 Notification Types
原来是有四种
通知类型 | 定义 |
---|---|
INITIAL_BUY | 首次订阅 |
INTERACTIVE_RENEWAL | 用户主动回复订阅 |
DID_CHANGE_RENEWAL_PREF | 用户修改了订阅计划 |
CANCEL | 产生了退款 |
这次新增了四种
通知类型 | 定义 |
---|---|
DID_CHANGE_RENEWAL_STATUS | 变更续订状态 |
DID_FAIL_TO_RENEW | 续订失败 |
DID_RECOVER | 续订失败之后再次成功续订 |
PRICE_INCREASE_CONSENT | 涨价同意 |
这里面有个很存疑的地方, DID_CHANGE_RENEWAL_STATUS
原来就有, 不知道为啥这里要说是新增的
强烈建议开发IAP支付的同学去看看视频关于Notification Types讲解
3.3 Handling Notifications
这里主要是根据上面的通知类型, 进行了一些举例
比如用户升级收到的server-to-server通知是:INTERACTIVE_RENEWAL
+CANCEL
用户流失一段时间重新订阅只有:INTERACTIVE_RENEWAL
里面重点听了一下 DID_FAIL_TO_RENEW
, 这个是因为用户卡里没钱导致扣款失败, 这里涉及到一个账单宽限期的功能了, 在这个通知里面有个字段is_in_billing_retry_period
, 告诉我们苹果是否在积极尝试扣款.如果后续扣款成功, 会发送DID_RECOVER
的通知. 这个DID_RECOVER
以后会取代RENEWAL
通知类型(会给一段时间缓冲期).
目测这个DID_FAIL_TO_RENEW
会很有用, 因为是用户的银行卡扣款失败, 但是可能用户还不知道, 如果服务器收到了这个通知, 然后在告诉客户端, 客户端可以给用户弹窗提示他, 您的续订扣款失败,请检查银行卡. 这样就不会让用户无意流失了
4.Subscription Lifecycle
主要是讲了一下目前苹果订阅的流程,包括首次购买, 重新续订, 升级, 还有续费重试. 夸了下加了续费重试这个功能之后无意识流失变少了
账单缓冲期
这个主要是为了减少无意识流失订阅
这个功能有个开关控制.需要在ITunes connect后台打开这个开关, 才能享受这个功能, 如果开启的这个开关, 在凭证中拿到in-billing-retry-period
字段, 表示是否在尝试扣款期,, 具体可以看看这篇文章
这个看他的描述, 用户在5.1号买了一个会员, 但是在6.1号扣款的时候, 卡里没钱了, 导致扣款失败, 如果我开通了这个功能, 苹果会持续16天进行扣款, 如果在6.6号扣款成功了, 那么下次扣款还是在7.1号了,减少用户无意识流失. 这个功能的开发量主要在API,他需要监听苹果的通知
5. 订阅优惠
这个订阅优惠苹果已经在iOS12.2 就出了, 这里是介绍了一下订阅优惠的最佳实践, 里面他举例了如何实现订阅优惠, 以及订阅优惠可以干什么,感觉比较新的东西就是在最后介绍的在ITunes Connect后台新增了两个关于续订统计表格, 其他的很早就知道怎么用, 可以看看我写的这篇推介促销和订阅优惠