为什么 iOS 的 Apple AppStore 应用内收据是空的?
Why is the Apple AppStore in-app receipt empty on iOS?
在应用程序中,我需要实施自动续订订阅购买。
据我了解文档,我应该在应用程序启动时检查 AppStore 收据,然后用我的服务器验证该收据。
在我的代码中,我执行以下操作来检索收据:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
有时 receipt
变为零。
例如:
- 我启动了一个应用程序并进行了购买。之后上面的代码 returns 非空
receipt
.
- 应用已停止 Xcode。
- 下次应用启动时
receipt
为零。
我不明白,为什么会这样。 receiptURL
指向带有收据的文件,但是 [NSData dataWithContentsOfURL:receiptURL]
returns 没有。
如果我请求刷新收据,应用程序会显示用于输入 Itunes 凭据的对话框。这不好,因为这个对话框会在应用程序启动时出现,这是意外行为。
我是不是做错了什么?
或者这可能是特定于沙箱的情况?
在应用程序中,我需要实施自动续订订阅购买。 据我了解文档,我应该在应用程序启动时检查 AppStore 收据,然后用我的服务器验证该收据。 在我的代码中,我执行以下操作来检索收据:
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
有时 receipt
变为零。
例如:
- 我启动了一个应用程序并进行了购买。之后上面的代码 returns 非空
receipt
. - 应用已停止 Xcode。
- 下次应用启动时
receipt
为零。
我不明白,为什么会这样。 receiptURL
指向带有收据的文件,但是 [NSData dataWithContentsOfURL:receiptURL]
returns 没有。
如果我请求刷新收据,应用程序会显示用于输入 Itunes 凭据的对话框。这不好,因为这个对话框会在应用程序启动时出现,这是意外行为。
我是不是做错了什么? 或者这可能是特定于沙箱的情况?