测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2016年11月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Paul Wilkinson 维护。
一个用于监控iOS自动续订订阅的框架
SubscriptionMonitor自动执行验证自动续订订阅的应用内购买收据的任务。它将定期刷新应用收据,并与您的服务器进行验证。
通过一个NSNotification(和可选的闭包调用)通知您的应用收据已被刷新,应检查订阅的变化。
特性
SubscriptionMonitor支持iOS 9及以上版本。您的项目必须用Swift 3编写,以集成SubscriptionMonitor。需要一个外部网络服务器以与App Store服务器通信并执行收据验证。
SubscriptionMonitor可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中
pod "SubscriptionMonitor"
使用SubscriptionManager
非常直接
ReceiptValidator
实例 - SimpleReceiptValidator
与下面的示例php
脚本是兼容的(见下文)let validator = SimpleReceiptValidator(serverBase: "https://yourserver.yourdomain.com/iTunesReceiptValidator.php",
targetBundle:"com.yourdomain.yourapp")
SubscriptionMonitor
实例 - 这个实例应该在不会释放的地方,比如在UIApplicationDelegate
类的一个属性中self.subscriptionMonitor = SubscriptionMonitor(validator: validator,
refreshInterval: 3600, useSandbox: false)
let productGroup = ProductGroup(name: "First Product Group")
let product1 = Product(productID: "com.mydomain.myProduct1", productLevel: 1, duration: .year)
let product2 = Product(productID: "com.mydomain.myProduct2", productLevel: 1, duration: .month)
let freeProduct = FreeProduct(productID: "com.mydomain.freeproduct", productLevel: 99)
productGroup.add(product: product1)
productGroup.add(product: product2)
productGroup.add(product: FreeProduct)
self.subscriptionMonitor.add(productGroup: productGroup)
self.subscriptionMonitor.setUpdateCallback { (receipt, subscriptions, error) -> Void in
if error != nil {
print("There was an error: \(error)")
}
// Note that even after an error there may be active `subscriptions` if you have free products defined
for subscription in subscriptions {
print("Active product: \(subscription.product.productID)")
}
}
您还可以订阅 SubscriptionMonitorRefreshNotification
NSNotification
。这个通知的 userInfo
可能包含“错误”、“活跃”和“收据”的键,取决于验证结果。
调用 startRefreshing
开始收据和订阅信息的基于时间的刷新
self.subscriptionMonitor.startRefreshing()
refreshNow
触发手动收据验证和刷新self.subscriptionMonitor.refreshNow()
Apple建议您使用服务器来在您的应用程序和他们的收据验证服务器之间提供一个接口,这样可以让您在过程中构建额外的安全性和信任级别。SubscriptionMonitor 中的 SimpleReceiptValidator
类设计成与在 repo 的 php 目录中可以找到的 iTunesReceiptValidator.php
脚本一起工作。需要修改此脚本以包含可以从iTunesConnect检索的共享密钥。
paulw, [email protected]
SubscriptionMonitor受MIT许可协议保护。有关更多信息,请参阅LICENSE文件。