ios - 应用内购买 : SKPaymentTransactionStatePurchased

标签 ios in-app-purchase

我刚刚在我的应用中添加了一项应用内购买。 当用户点击“购买”按钮并且交易结束时,“购买”按钮被另一个按钮取代以访问新功能。 但是每次我回到那个页面或者我关闭并再次打开应用程序时,都会再次出现“购买”按钮。 如果用户购买了新内容,我该怎么做才能始终拥有新按钮? 这是我的代码:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {

    for (SKPaymentTransaction *transaction in transactions) {

          switch (transaction.transactionState) {

               case SKPaymentTransactionStatePurchasing:

                    break;

               case SKPaymentTransactionStatePurchased:

               [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

                           UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

                              [button addTarget:self 

                               action:@selector(myaction)

                               forControlEvents:UIControlEventTouchUpInside];

                    [button setTitle:@"mytitle" forState:UIControlStateNormal];



                    button.frame = CGRectMake(156.0, 248.0, 129.0, 36.0);

                    [self.view addSubview:button];

                    break;

               case SKPaymentTransactionStateRestored:

                    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                         break;

               case SKPaymentTransactionStateFailed:

                    if (transaction.error.code != SKErrorPaymentCancelled) {

                         NSLog(@"Errorr");

                    }

                    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];


          }

     }

}

最佳答案

您应该在某处保存有关用户已购买内容这一事实的信息。

有很多方法可以做到这一点。例如,您可以使用 NSUserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int version = [defaults integerForKey:@"db_version"];                 // <- read int value from defaults
[defaults setValue:[NSNumber numberWithInt:2] forKey:@"db_version"];  // <- set int value
[defaults synchronize];    // <- save changes

关于ios - 应用内购买 : SKPaymentTransactionStatePurchased,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036653/

相关文章:

ios - swift 神秘错误

ios - 带有后退按钮的导航栏不隐藏

ios - iOS应用因缺少应用内购买而被拒绝...要接受多长时间?

android - 小部件 Android 计费版本 3 的应用内购买

macos - 在服务器端验证 Mac OS X 的消耗品应用内购买

ios - Xcode 加载图像的旧实例而不是新实例

ios - 更新推送证书并保持当前 App Store 应用程序正常工作 xcode 8.3.3

ios numberformatter currency 如果为 0,则删除尾随小数

iphone - 在应用程序内购买订阅续订未按预期进行

iphone - 应用内购买,多个具有不同持续时间的自动续订订阅