【发布时间】:2016-03-16 12:42:51
【问题描述】:
在应用程序中,我需要实现自动更新订阅购买。 据我了解文档,我应该在应用启动时检查 AppStore 收据,然后使用我的服务器验证该收据。 在我的代码中,我执行以下操作来检索收据:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
有时receipt 会变成零。
例如:
- 我已经启动了一个应用程序并进行了购买。之后,上面的代码返回非空
receipt。 - 应用通过 Xcode 停止。
- 在下一个应用启动时,
receipt为零。
我不明白,为什么会这样。 receiptURL 指向带有收据的文件,但 [NSData dataWithContentsOfURL:receiptURL] 返回 nil。
如果我请求刷新收据,则应用会显示用于输入 iTunes 凭据的对话框。这不好,因为此对话框会在应用启动时出现,这是意外行为。
我做错了吗? 或者这可能是特定于沙盒的案例?
【问题讨论】:
标签: ios in-app-purchase storekit receipt receipt-validation