应用程序内购买产品请求方法需要两次调用

时间:2015-10-13 04:17:06

标签: ios objective-c request in-app-purchase itunesconnect

我目前已经创建了一系列调用和返回我创建的In-App Purchase产品的方法。我可以毫无问题地致电SKProductRequest,我甚至可以购买该商品并收到成功的购买通知(SKPaymentTransactionStatePurchased)。

问题是无论出于何种原因,当我最初运行应用时,我必须调用以下方法2次才能收到非null 响应来自Apple:

/// In app purchases

- (IBAction)BuyProduct:(id)sender {
    if ([SKPaymentQueue canMakePayments]) {
        SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:_productID]];
        request.delegate = self;

        [request start];
    } else {
        NSLog(@"Please enable In App Purchasing in your settings");
    }
}


#pragma mark _
#pragma mark SKProductsRequestDelegate

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

    NSArray *products = response.products;

    if (products.count != 0) {
        NSLog(@"Products available: %@", _product.localizedTitle);
        _product = products[0];
    } else {
        NSLog(@"Products not found.");
    }

    products = response.invalidProductIdentifiers;

    for (SKProduct *product in products) {
        NSLog(@"Product not found: %@", product);
    }
}

每次我第一次拨打BuyProduct IBAction时都会收到: (原谅破折号 - 只需清除我的个人信息!)

---------- --.07.55.823 -------[2474:827710] Products available: (null)

然后第二时间以及之后我调用相同的IBAction按钮,我正确地收到了IAP名称,

---------- --.08.03.142 -------[2474:827710] Products available: TEST IAP
---------- --.08.04.455 -------[2474:827710] Products available: TEST IAP

SO ,我只是想弄清楚为什么我需要调用这些方法2次才能让Apple(或我的代码)成功返回我的IAP产品名称。如果有人能帮助我,我会非常感激!

0 个答案:

没有答案