mainBundle上的appStoreReceiptURL返回nil

时间:2018-06-25 11:31:46

标签: ios in-app-purchase

NSData *recData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];

卸载应用后,我得到recData nil并重新安装。 首次启动我的应用程序时,我使用来请求产品:

SKProductsRequest *productsRequest = [[SKProductsRequest alloc]
                                          initWithProductIdentifiers:[NSSet setWithArray:productIdentifiers]];

   productsRequest.delegate = self;
    [productsRequest start]; 

此后,调用-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions,然后按以下方式检索收据数据:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions
{
    SKPaymentTransaction *transaction = transactions.lastObject;
    switch (transaction.transactionState) {
        case SKPaymentTransactionStatePurchased:
        {
            [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
            NSLog(@"Order id ======>> %@",transaction.transactionIdentifier);
            NSData *recData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];

            [[PaymentPopupViewController sharedInstance] hidePreloader];

            [self getReceiptFromAppStore:recData Transaction:transaction isBackground:NO];
            break;
        }

        case SKPaymentTransactionStateFailed:
        {
            NSLog(@"Purchase failed ");
        }
            break;

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

        default:

            break;
    }
}

0 个答案:

没有答案