Swift: сделать SKPayment только с идентификатором продукта - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь создать экземпляр объекта SKPayment

let payment = SKPayment(product: product)

Все, что я знаю, это productID

var productID = "MyId"

Документация Apple упоминает некоторые методы делегата для доступапродукт, productsRequest(_ request: SKProductsRequest, didReceive response: SKProd, но проблема в том, что они делегируют методы, поэтому я не могу вызвать их и не знаю, как их использовать для получения моих продуктов


Если вы хотите просмотретьбольшой проект вместо того, что по этому вопросу, проект на этом github

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Короткий ответ: «Вы не можете».

Вам необходимо выполнить SKProductsRequest через StoreKit, чтобы получить экземпляры SKProduct из App Store. После того, как вы получили экземпляры продукта, вы можете использовать их для отображения соответствующего пользовательского интерфейса и разрешения покупки.

Когда пользователь начинает операцию покупки, вы можете передать SKProduct, который был извлечен.

0 голосов
/ 18 октября 2019

Если все, что у вас есть, это productID, то вы должны сделать запрос на подключение к магазину приложений, чтобы получить объекты продукта.

let productIdentifiers: Set<ProductIdentifier> = ["myId"]
let store = IAPHelper(productIds: productIdentifiers)
var products = [SKProduct]

store.requestProducts{ [weak self] success, products in
        guard let self = self 
        else { return }
        if success {
            self.products = products!
        }
    }
}

Как только у вас есть продукты, вы можете просмотреть их и посмотреть,любой из их идентификаторов соответствует интересующему товару. Если это так, вы можете использовать этот продукт.

for prod in self.products{
    if prod.productIdentifier == "myId"{
        let payment = SKPayment(product: product)
        SKPaymentQueue.default().add(payment)
    }
}

Пожалуйста, отредактируйте, если вы считаете, что можете улучшить этот пост, я разместил на всякий случай, если у кого-то еще есть такой же вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...