7

最近我在工作IAP。如您所知,当您想发送付款请求时,您应该致电

+ (id)paymentWithProduct:(SKProduct *)product

但我发现获取产品的唯一方法是使用SKProductsRequest,有没有办法SKProduct直接生成?就像被弃用的一样,

+ (id)paymentWithProductIdentifier:(NSString *)identifier

事实是我想要一个SKProduct直接使用产品 ID 的新对象。

BR,罗杰

4

4 回答 4

16

我用它来购买产品而不从 iTunes 获取所有产品:

  - (void)buyProductIdentifier:(NSString *)productIdentifier 
{
    SKMutablePayment *payment = [[SKMutablePayment alloc] init] ;
    payment.productIdentifier = productIdentifier;
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}
于 2014-11-18T12:34:56.593 回答
10

如果您想创建一个SKProduct用于单元测试的目的,您可以扩展该类并设置标识符:

extension SKProduct {
    convenience init(identifier: String, price: String, priceLocale: Locale) {
        self.init()
        self.setValue(identifier, forKey: "productIdentifier")
        self.setValue(NSDecimalNumber(string: price), forKey: "price")
        self.setValue(priceLocale, forKey: "priceLocale")
    }
}
于 2018-09-06T21:00:11.787 回答
5

没有这样的机制。您必须让 Apple 批准您的应用内购买并使用 SKProductsRequest API 来检索定价信息。

于 2012-10-26T16:28:49.163 回答
0

您可以创建SKMutablePayment而不是SKPayment

let payment = SKMutablePayment()
payment.productIdentifier = <#ProductIdentifier#>
SKPaymentQueue.default().add(payment)
于 2021-05-29T20:12:18.403 回答