appleSetGoods method

dynamic appleSetGoods(
  1. String callback,
  2. String uuid,
  3. String type,
  4. String userid,
  5. List productIds,
)

Implementation

appleSetGoods(
  String callback,
  String uuid,
  String type,
  String userid,
  List<dynamic> productIds,
) async {
  await HJResource.loadSymbols();

  Purchases.setLogLevel(LogLevel.debug);

  PurchasesConfiguration configuration = PurchasesConfiguration(
    MPubspecNews.catUrl,
  );

  configuration.appUserID = userid;

  await Purchases.configure(configuration);

  try {
    Offerings offerings = await Purchases.getOfferings();
    Map<String, dynamic> productsDict = {};
    for (var offeringEntry in offerings.all.entries) {
      Offering offering = offeringEntry.value;
      for (Package package in offering.availablePackages) {
        productsDict[package.storeProduct.identifier] = package.storeProduct;
      }
    }
    List<Map<String, dynamic>> productsList = [];
    for (var productId in productIds) {
      if (productsDict.containsKey(productId)) {
        var product = productsDict[productId]!;
        String currencySymbol = HJResource.getSymbol(product.currencyCode);
        productsList.add({
          "${getRandomString()}pn": productsDict[productId].title,
          "${getRandomString()}pd": productsDict[productId].description,
          "${getRandomString()}pj": productsDict[productId].identifier,
          "${getRandomString()}pp": productsDict[productId].priceString,
          "${getRandomString()}cc": productsDict[productId].currencyCode,
          "${getRandomString()}cm": currencySymbol,
          "${getRandomString()}pa": productsDict[productId].price,
        });
      }
    }
    Map params = {
      "${getRandomString()}gd": productsList,
      "${getRandomString()}ud": uuid,
    };
    try {
      webviewController?.runJavaScript(
        "window.${getRandomCharacter()}('${callback}',${jsonEncode(params)})",
      );
    } catch (e) {}
  } catch (e) {}
}