恢复未订阅的应用购买交易

时间:2018-06-28 12:11:06

标签: ios objective-c in-app-purchase restore

我已经在我的应用程序中实现了应用内购买。在此应用程序中,一旦用户在应用程序中注册,他就需要使用我的应用程序关键功能进行订阅。这是自动续订。

我的问题是,如果用户A使用自己的Apple ID在自己的ios设备中进行订阅,然后从该应用程序注销。 现在,他再次使用新ID(例如B)在我的应用程序中注册,并看到应用程序内购买视图,然后单击“还原”按钮。这是恢复代码:

  - (void)restoredPayment:(SKPaymentTransaction *)transactions{

    if ([transactions.payment.productIdentifier isEqualToString:monthlySubscription]) {

        NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
        NSError *receiptError;
        BOOL isPresent = [receiptURL checkResourceIsReachableAndReturnError:&receiptError];

        if (isPresent)
        {
            NSData *receiptData = [[NSData alloc] initWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];

            BOOL isSubscriptionPeriodValid = [[DataBase sharedInstance] getSubscriptionStatusFromAppleWithReceipt:receiptData];
            if (isSubscriptionPeriodValid)
            {
                 [[AppDelegate sharedAppDelegate].arrayConacatResponse addObject:[NSString stringWithFormat:@"restoredPayment SubscriptionPeriodValid"]];

                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"CS Remove view valid period" message:@"" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil] ;
              //  [alert show];

                [self removeFromSuperview];
            }else{
                // Here I want to stop

                [CommonUtilities showAlertWithTitle:@"" Message:@"You have no transaction to restore."];

            }
        }
    }

    [ProgressHUD dismiss];
}

因此,无需订阅,新用户只需还原即可使用完整的应用程序功能。 因为Apple确实针对该用户的Apple ID进行订阅。而且他没有更改他的苹果ID。

有人可以建议我如何管理它,并限制新用户恢复并说要先订阅吗。

谢谢

0 个答案:

没有答案