迅速:应用内购买价格负荷

时间:2018-07-28 06:15:27

标签: ios swift

我有两个ID为diffForHumans()myPurchase的商品。我想获得两次购买的价格,然后将此价格添加到两个变量中。

purchase01

我使用此代码加载一次购买的价格。

var price = ""
var price2 = ""

如果我的product_id =首次购买,如何获得第二次购买的价格?没有第三方库。

1 个答案:

答案 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中要做的第一件事就是实例化一个对象,以监听付款队列并处理交易。

当前编写代码的方式似乎是在检查购买是否可用,并在用户启动购买后检索产品。这不是最好的方法。

您应在应用启动时检查购买和检索产品。取回产品后,启用购买按钮