我们正在为自动续订订阅实施服务器端收据验证。现在,当用户关闭订阅或自动续订时,没有任何通知从Apple服务器发送到我们的服务器。我们想在订阅即将到期时轮询苹果服务器。那么我们该怎么做呢?
有没有办法在特定日期安排这种轮询?
答案 0 :(得分:0)
首先,在进行任何应用内购买后,您需要在验证数据后存储收据数据。另外,您还需要存储特定购买的到期日期,该日期将通过收据验证得到。
现在在您的服务器中创建一个crone作业以验证自动续购,根据您的项目需要,cron作业的时间间隔取决于您,但是例如需要1个小时。在crone作业中,您只需要选择到期时间在接下来的6个小时内的那些记录(您可以根据需要更改此时间)。然后再次验证该收据,如果购买得到自动续订,那么您将获得收据清单。购买自动续订时,您将在列表中获得新的收据。这样您将获得新的到期时间。假设您没有收到任何新收据,则意味着用户已取消订阅
答案 1 :(得分:0)
您需要收据验证。
如果您的应用程序提供自动续订,则可以通过设置链接到服务器的可选URL从App Store接收有关关键事件的服务器通知。
在向服务器发送通知之前,App Store会尝试使用App Transport Security(ATS)协议与您的服务器建立安全的网络连接。如果无法建立安全连接,则不会将通知发送到您的服务器。请参阅使用ATS连接的要求,以了解有关安全要求的更多信息。
建立安全的HTTPS连接后,App Store将通过HTTP发布将JSON对象传递给您的服务器以进行关键订阅事件。请参阅应用内购买编程指南,以了解有关此HTTP帖子内容的更多信息。
结合使用服务器通知和收据验证来验证客户的当前订阅状态,并为他们提供从您的应用程序内部访问内容或服务的权限。
有关更多信息:Link
答案 2 :(得分:0)
无法获取诸如取消之类的通知,因为这些通知仅在Apple直接取消订阅时发送。
续订通知,“成功续订的订阅已成功进行自动续订。请检查“订阅到期日期”以确定下一个续订日期和时间。”通常,iTunes会在预定自动更新的订阅到期前一天尝试向用户帐户收费。如果续订成功,则不会出现服务器到服务器通知,因为自动续订未进入过期状态。目前尚不支持在沙盒环境中模拟此事件。”
了解更多:https://forums.developer.apple.com/message/283579#283579