【问题标题】:iOS In App Purchase buy several productsiOS In App Purchase 购买多款产品
【发布时间】:2016-09-16 15:06:21
【问题描述】:

我正在尝试在应用程序购买中测试非消耗品。它工作正常。我有 10 种产品。我想选择几种产品并在一笔交易中购买。我尝试了使用 SKPayment 方法的数组。它不起作用。如何一键购买多个产品?

单一产品工作正常;

func paymentQueueWithProduct(product : SKProduct){

    SKPaymentQueue.defaultQueue().addTransactionObserver(self);

    let payment = SKPayment(product: product);
    SKPaymentQueue.defaultQueue().addPayment(payment);

}

我需要在一笔交易中购买多个产品。例如;

func paymentQueueWithProduct(products : [SKProduct]){

    SKPaymentQueue.defaultQueue().addTransactionObserver(self);

    let payment = SKPayment(product: products);
    SKPaymentQueue.defaultQueue().addPayment(payment);

}

【问题讨论】:

  • 定义“不起作用”。在您的问题中提供相关的详细信息和代码。

标签: ios swift in-app-purchase storekit


【解决方案1】:

您不能在一次交易中购买多个产品,除非它们是同一产品的多个(您最多可以设置 10 个)。

也许考虑添加结合现有 IAP 组优势的 IAP(例如,如果您销售“级别 1”、“级别 2”、“级别 3”,请考虑销售“级别 1-3”。

不相关,但您可能只想观察一次付款队列,而不是每次尝试购买时都尝试将自己添加为观察者。

此处描述了付款方式,并且只讨论了一次购买一种产品:

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/RequestPayment.html#//apple_ref/doc/uid/TP40008267-CH4-SW2

【讨论】:

  • 你好,我想像你说的那样实现“level 1”,“level 2”,“level 3”,以及“level1-3”。问题是,当购买一个团体时,应该有一种方法可以将单个项目也标记为已购买,否则系统将在多台机器上出现问题。我该如何解决这个问题?如果第二台机器上具有相同 Apple ID 的用户尝试购买属于某个组的商品,该怎么办?如何确定已经购买?谢谢
  • 非常感谢 Ben,现在我遇到了问题,就像你说的,检查商品是否已购买。我正在尝试使用此代码: self.request = [[SKReceiptRefreshRequest alloc] init]; self.request.delegate = self; [self.request 开始];但它需要用户交互并向用户询问密码。我迷路了
  • 对于单件商品,对于已购买的商品,商店将始终以失败响应。一个产品永远不会被购买两次。在缺乏实时机制的情况下,对于团体及其个别产品,这无法得到保证。我错过了什么吗?
  • 收据请求是一个单独的问题。如果您从 Xcode 安装,您将没有收据,因此您需要调用 refresh,但在现场您将始终有收据(并且很少需要刷新它)。您购买的所有商品都将在收据中。如果您想查看是否购买了 (A)、(B) 或 (C),请先检查 (ABC) 是否已购买,然后再检查个别的。根据该信息是否允许重复购买取决于您。
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 2011-12-10
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
相关资源
最近更新 更多