我有两个ID为diffForHumans()
和myPurchase
的商品。我想获得两次购买的价格,然后将此价格添加到两个变量中。
purchase01
我使用此代码加载一次购买的价格。
var price = ""
var price2 = ""
如果我的product_id =首次购买,如何获得第二次购买的价格?没有第三方库。
答案 0 :(得分:0)
您可以使用Set
发送SKProductsRequest
的产品ID(在Swift中不要使用NSSet
)。
然后您将在响应中收到一系列有效产品。建议您不要创建以产品ID为键的字典来存储结果,而不是将价格存储在离散变量中。
var products = [String:SKProduct]()
override func viewDidLoad() {
super.viewDidLoad()
let productIds = Set(["myPurchase","purchase01"])
if !(UserDefaults.standard.bool(forKey: "purchased")){
if (SKPaymentQueue.canMakePayments()) {
let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productIds);
productsRequest.delegate = self;
productsRequest.start();
print("Fetching Products");
} else {
print("Can't make purchases");
}
}
}
func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
for product in response.products {
self.products[product.productIdentifier] = product
}
}
在应用购买中实施时,在didFinishLaunchingWithOptions
中要做的第一件事就是实例化一个对象,以监听付款队列并处理交易。
当前编写代码的方式似乎是在检查购买是否可用,并在用户启动购买后检索产品。这不是最好的方法。
您应在应用启动时检查购买和检索产品。取回产品后,启用购买按钮