首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取购买产品列表,inApp Purchase iPhone

获取购买产品列表,inApp Purchase iPhone
EN

Stack Overflow用户
提问于 2013-04-14 23:51:24
回答 1查看 1.9K关注 0票数 0

我正在为我的iOS应用程序购买应用程序。苹果拒绝了我的二进制文件,因为我没有恢复购买的产品。在我的应用程序中,一旦用户点击产品的图标,如果商品被锁定,他/她将进入inApp购买流程,否则产品将打开。没有可视化的Buy按钮。现在苹果又说要提供恢复按钮了?有人能告诉我怎么处理这个问题吗?我试过了

代码语言:javascript
复制
- (void) checkPurchasedItems
{
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}// Call This Function

//Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    alreadyPurchasedItems = [[NSMutableArray alloc] init];

    NSLog(@"received restored transactions: %i", queue.transactions.count);
    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSString *ID = transaction.payment.productIdentifier;
        [alreadyPurchasedItems addObject:ID];
    }

}

在应用程序启动时,但从不调用方法,因此我可以获得已购买商品的列表,然后直接通知用户他/她是否已经购买了这些商品。

EN

回答 1

Stack Overflow用户

发布于 2013-04-15 00:02:53

如何设置[SKPaymentQueue defaultQueue]的委托?我猜你已经做过smt了,比如:

代码语言:javascript
复制
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

在那之后,[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];应该导致下面的方法被激发。所以case SKPaymentTransactionStateRestored就是你实现它的地方:

代码语言:javascript
复制
-(void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    for (SKPaymentTransaction * transaction in transactions) {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:                
                ...
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:                
                ...
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:                
                ...
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
            default:
                break;
        }
    };
}

你可能会看一下本教程,恢复在最后会有更详细的解释。http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16000999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档