【问题标题】:How can I get the product identifier from a restored transaction?如何从恢复的交易中获取产品标识符?
【发布时间】:2012-02-20 10:05:41
【问题描述】:

我已经设法恢复了应用内交易并从原始交易中获取了交易标识符,但是我如何识别交易中购买的产品? 是否可以获取之前购买的应用内商品的商品标识符?

【问题讨论】:

    标签: iphone ios in-app-purchase


    【解决方案1】:

    如果您的意思是要检查已经用户购买的已购买商品.. 是的,您可以这样做

    - (void) checkPurchasedItems {
        [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
    } //You Call This Function
    
    //Then this delegate Function Will be fired
    - (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
        purchasedItemIDs = [[NSMutableArray alloc] init];
    
        NSLog(@"received restored transactions: %i", queue.transactions.count);
        for (SKPaymentTransaction *transaction in queue.transactions) {
            NSString *productID = transaction.payment.productIdentifier;
            [purchasedItemIDs addObject:productID];
        }
    }
    

    【讨论】:

    • 谢谢!这正是我所需要的。
    • 我使用您的解决方案来确定与队列中当前正在处理的 SKPaymentTransaction 关联的 productIdentifier(即transaction.payment.productIdentifier)。谢谢
    • 在您的示例中,您将获得 SKPaymentQueue 中所有交易的 ID,但问题仅与恢复的交易有关。否决
    【解决方案2】:

    快捷版:

    一旦你得到委托

    func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {
        var productIds = [String]()
        for transcation in queue.transactions{
            if let productID = transcation.payment?.productIdentifier{
            productIds.append(productID)
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多