我们的 iOS 应用程序支持具有不同免费试用期的年度订阅。我们的目标是离线评估用户设备上本地可用的收据。
**我们计划这样做:**
- 检查 cancellation_date 是否存在 - 非事件订阅
如果 cancellation_date 不存在,检查 purchase_date 是否存在:
如果是,检查expires_date是否存在并且处于活跃期——活跃订阅
如果不存在,检查 expires_date 是否存在并且处于活跃期——可能是试用期
我们无法弄清楚的是,如果用户在试用期间关闭订阅停止付款,应用程序如何知道此类事件?
expires_date 表示“试用期+1 年”还是仅表示“1 年”?
original_purchase_date 或 purchase_date 表示“试用开始”还是“用户付款日期”?
Note: We also plan to periodically refresh local receipt using SKReceiptRefreshRequest.
最佳答案
确保您正在查看所有 in_app
条目的子内容,ASN1 类型 17。每次更新都会有一个。
只有在 Apple 客户服务取消订阅时才会设置取消日期,您应该主要取决于到期日期。
试验被视为 in_apps 数组中单独的 in_app 字段。因此,只要您正在寻找最新的 expires_date
字段,您就会计算出正确的到期日期。
此外,我不确定在使用 SKReceiptRefreshRequest
时 in_apps 的更新程度如何。 Apple 表示在使用订阅时使用服务器端验证和/verifyReceipt 端点。
无耻的插件,但如果你想用更少的努力实现订阅,你可能想试试我的服务,RevenueCat .我们为您处理所有收据解析和跟踪并正确执行。您可以注册 my referral code .
关于ios - 如何在评估 iOS 自动更新 iAP 时使用 ASN 本地收据中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124775/