为什么苹果应用商店应用内收据在iOS上是空的?
在应用程序中,我需要实现自动更新订阅购买。 根据我对文档的理解,我应该在应用程序启动时检查AppStore收据,然后用我的服务器验证该收据。 在我的代码中,我执行以下操作来检索收据:为什么苹果应用商店应用内收据在iOS上是空的?,ios,in-app-purchase,storekit,receipt,receipt-validation,Ios,In App Purchase,Storekit,Receipt,Receipt Validation,在应用程序中,我需要实现自动更新订阅购买。 根据我对文档的理解,我应该在应用程序启动时检查AppStore收据,然后用我的服务器验证该收据。 在我的代码中,我执行以下操作来检索收据: NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL]; NSData *receipt = [NSData dataWithContentsOfURL:receiptURL]; 有时,收据变为零。 例如: 我已经启动了一个应用程序并进行了购
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
有时,收据
变为零。
例如:
- 我已经启动了一个应用程序并进行了购买。之后,上述代码返回非空的
收据
- 应用程序已使用Xcode停止
- 在下一次应用程序启动时,
为零接收
receiptURL
指向带有收据的文件,但[NSData dataWithContentsOfURL:receiptURL]
返回零
若我请求刷新收据,那个么应用程序将显示输入Itunes凭据的对话框。这不好,因为此对话框将在应用程序启动时出现,这是意外行为
我做错什么了吗?
或者这可能是沙盒特定的情况?在生产过程中,始终会有收据(即使应用程序是免费的),可以包含您的额外购买,以防您购买了某些东西或从已购买的物品中恢复。
在测试环境中,直到您购买了收据,收据都是零。如果您想测试一个接近生产的案例,您应该首先尝试还原(现在您将有收据)并执行您需要的操作。建议您的支付过程被黑客入侵,无论如何,都要调用SKPaymentTransactionStatePurchased。在接受任何收据之前,您需要在服务器上验证收据
您可以找到收据和黑客的详细说明。谢谢,安德里亚!但我已经尝试恢复购买。之后,收据不是空的。但随后我用XCode停止应用程序,在下一次应用程序启动时,收据为零。