iOS - 如果应用程序本身已购买,则在应用内购买时恢复
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - 如果应用程序本身已购买,则在应用内购买时恢复相关的知识,希望对你有一定的参考价值。
ios应用程序是最初付费的应用程序,后来通过应用程序内购买选项获得免费。
对于已购买该应用程序的用户,下面的restore
代码,实际上还原了吗?或者这只是应用程序购买专门恢复应用程序?
如果只是在应用内购买,我如何确保实际为应用付费的用户也“恢复”:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
NSLog(@"Purchased Case");
[defaultQueue finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
NSLog(@"Failed Case");
[defaultQueue finishTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
NSLog(@"Restored Case");
[defaultQueue restoreCompletedTransactions];
break;
default:
break;
}
}
}
我使用以下方式获取应用内购买的产品:
- (void) getProductInfo
{
if ([SKPaymentQueue canMakePayments])
{
NSSet *productID = [NSSet setWithObject:@"myoneoffid"];
SKProductsRequest *request = [[SKProductsRequest alloc]initWithProductIdentifiers:productID];
request.delegate = self;
[request start];
}
}
谢谢。
答案
不可以,在添加应用内购买之前,您无法使用“恢复购买”功能向最初购买非免费应用的用户授予访问权限。当然,对于购买应用内购买的新用户,您需要在更新的应用中使用该功能。
要处理应用程序的早期购买者的情况,您需要进行收据验证。您可以获得收据并查看原始购买版本。如果该版本比通过应用内购买转换为免费版本的版本旧,那么您可以授予用户访问这些功能的权限,而无需为其付费。
有关详细信息,请参阅Change paid app to free but know if user previously purchased it。
以上是关于iOS - 如果应用程序本身已购买,则在应用内购买时恢复的主要内容,如果未能解决你的问题,请参考以下文章