Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS应用内购买购买多个产品_Ios_Swift_In App Purchase_Storekit - Fatal编程技术网

iOS应用内购买购买多个产品

iOS应用内购买购买多个产品,ios,swift,in-app-purchase,storekit,Ios,Swift,In App Purchase,Storekit,我正在尝试测试应用内购买的非消耗品。它很好用。我有10种产品。我想选择几种产品,在一次交易中购买。我尝试了使用SKPayment方法的数组。它不起作用。如何一键购买多个产品 单品工作精细 func paymentQueueWithProduct(product : SKProduct){ SKPaymentQueue.defaultQueue().addTransactionObserver(self); let payment = SKPayment(product: pr

我正在尝试测试应用内购买的非消耗品。它很好用。我有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);

}

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

也许考虑加入IAP来组合现有的IAPs的组的好处(例如,如果你卖的是1级的“2级”“3级”,也可以考虑销售“1-3级”。 不相关,但您可能只希望观察一次付款队列,而不是每次尝试购买时都尝试将自己添加为观察者

此处介绍了付款方式,每次只讨论购买一种产品:


定义“不起作用”。在您的问题中提供相关细节和代码。您好,我想按照您在这里所说的“1级”、“2级”、“3级”以及“1-3级”实施。问题是,在购买群时,应该有一种方法将单个项目标记为已购买,否则系统将在多台机器上出现问题。我如何解决此问题?如果用户在第二台具有相同Apple ID的机器上尝试购买属于群的项目,该怎么办?如何确定该项目已购买? thanks@AlfonsoTesauro还需要检查他们是否购买了团队,看看他们是否购买了个人物品。非常感谢Ben,现在我遇到了问题,就像你说的,检查物品是否已购买。我尝试使用以下代码:self.request=[[SKReceiptRefreshRequest alloc]init];self.request.delegate=self;[self.request start];但它需要用户交互,并向用户询问密码。我丢失了单个商品,商店总是会对已购买的产品做出失败响应。一个产品永远不会购买两次。由于缺乏实时机制,无法保证团体及其个人产品的这一点。我遗漏了什么吗?收据请求是一个单独的问题。如果您从Xcode安装,您将没有收据,因此您需要呼叫refresh,但live您将始终有收据(并且很少需要要求刷新)。您所有的购买都将在收据中。如果您想查看(a)、(B)或(C)是否已购买,请检查(ABC)首先购买,然后检查单个。根据该信息,您将决定不允许重复购买。