多个产品的应用内购买
Posted
技术标签:
【中文标题】多个产品的应用内购买【英文标题】:In App Purchases with multiple products 【发布时间】:2015-06-12 18:08:58 【问题描述】:我正在设置订阅应用程序,我希望有 2 个选项:2 个月和 1 年。这是我目前使用的适用于 2 个月购买的代码。如何将其修改为两者兼有?
func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!)
let products = response.products
if products.count != 0
product = products[0] as! SKProduct
func getProductInfo()
if SKPaymentQueue.canMakePayments()
let productID : NSSet = NSSet(object: "2MonthPrem")
let request : SKProductsRequest = SKProductsRequest(productIdentifiers: productID as Set<NSObject>)
request.delegate = self
request.start()
第二个函数出现问题:getProductInfo()。如何添加第二个产品 ID?我尝试了以下方法:
if SKPaymentQueue.canMakePayments()
let productID : NSSet = NSSet(object: "2MonthPrem")
let productIDTwo : NSSet = NSSet(object: "1YearPrem")
let request : SKProductsRequest = SKProductsRequest(productIdentifiers: [productID, productIDTwo] as Set<NSObject>)
request.delegate = self
request.start()
【问题讨论】:
嗨 Mason,我只是想解释一下我从标题中删除“in SWIFT”的原因。既然您选择了 Swift 标签,那么它在标题中没有任何好处,它只是增加了噪音。将它放在标题中不会让 Swift 用户更容易看到您的帖子,他们会按标签搜索,并且在 google 网络结果中,您的帖子会显示“Swift - In App Purchases with multiple products”。仅供参考 你试过let productID : NSSet = NSSet(array: ["2MonthPrem", "1YearPrem"])
吗?
世嘉零。那行得通。我有一个问题要问你。这样做,当我将它们从 productsRequest 函数中的数组中拉出时,“1YearPrem”是索引 0,“2MonthPrem”是索引 1。Apple 是否按字母顺序排列它们?我还尝试在 getProductInfo() 中切换它们的顺序,它们出来了“1 年:索引 0、2 个月、索引 1。我猜是按字母顺序排列的,但希望你能确认?
感谢丹的澄清。
你不应该依赖元素的顺序。始终使用符号名称来防止任何错误,因为这会影响您的用户资金。
【参考方案1】:
let productID : NSSet = NSSet(array: ["2MonthPrem", "1YearPrem"])
这可行,但是当您从 Apple 回调它时,它会按字母顺序排列它们。因此,请确保在返回函数中测试每个数组索引。
【讨论】:
以上是关于多个产品的应用内购买的主要内容,如果未能解决你的问题,请参考以下文章