public static IAPSubscriptionInfo GetInstance(SubscriptionInfo info) { IAPSubscriptionInfo result = new IAPSubscriptionInfo(); // if(info){ result.isExpired = (info.isExpired() == Result.True); result.isAutoRenewing = (info.isAutoRenewing() == Result.True); result.isCancelled = (info.isCancelled() == Result.True); result.isFreeTrial = (info.isFreeTrial() == Result.True); result.isIntroductoryPricePeriod = (info.isIntroductoryPricePeriod() == Result.True); result.isSubscribed = (info.isSubscribed() == Result.True); result.purchaseDate = info.getPurchaseDate(); result.remainingTime = info.getRemainingTime(); result.cancelDate = info.getCancelDate(); result.expireDate = info.getExpireDate(); // info.getFreeTrialPeriod(); result.freeTrialPeriodString = info.getFreeTrialPeriodString(); result.introductoryPrice = info.getIntroductoryPrice(); result.introductoryPricePeriod = info.getIntroductoryPricePeriod(); result.introductoryPricePeriodCycles = info.getIntroductoryPricePeriodCycles(); // } return(result); }
/// <summary> /// Updates the receipt. /// </summary> /// <param name="pp">Pp.</param> /// <param name="p">P.</param> /// <param name="introductory_info_dict">Introductory info dict.</param> private void _UpdateReceipt(Product pp, ref IAPProduct p, Dictionary <string, string> introductory_info_dict) { #if RECEIPT_VALIDATION #if UNITY_EDITOR #else // Get subscription information if (pp.definition.type == ProductType.Subscription) { // Get the json which store the introductory info string intro_json = (introductory_info_dict == null || !introductory_info_dict.ContainsKey(pp.definition.storeSpecificId)) ? null : introductory_info_dict[pp.definition.storeSpecificId]; if (pp.receipt != null && checkIfProductIsAvailableForSubscriptionManager(pp.receipt)) { SubscriptionManager manager = new SubscriptionManager(pp, intro_json); SubscriptionInfo info = manager.getSubscriptionInfo(); p.subsciprtionInfo = IAPSubscriptionInfo.GetInstance(info); // Debug.Log("[SubscriptionInfo] input: " + pp.receipt); // Debug.Log("[SubscriptionInfo]: " + info); // Debug.Log("[SubscriptionInfo] result: " + p.subsciprtionInfo); // Debug.Log("[SubscriptionInfo] purchaseDate: " + p.subsciprtionInfo.purchaseDate); // Debug.Log("[SubscriptionInfo] expireDate: " + p.subsciprtionInfo.expireDate); // Debug.Log("[SubscriptionInfo] introductoryPrice: " + p.subsciprtionInfo.introductoryPrice); } // Decode introductoryPrice if (intro_json != null) { IntroductoryPrice ip = JsonUtility.FromJson <IntroductoryPrice>(intro_json); //Debug.Log("IntroductoryPrice> " + ip); if (ip != null) { if (string.IsNullOrEmpty(ip.introductoryPrice) || ip.introductoryPrice == "0") { // No introductory price } else { //p.priceString = ip.introductoryPrice; //p.price = Convert.ToDecimal(Regex.Replace(ip.introductoryPrice, "[^0-9.]", "")); p.introductoryPriceString = ip.introductoryPrice; p.introductoryPrice = Convert.ToDecimal(Regex.Replace(ip.introductoryPrice, "[^0-9.]", "")); } } } } #endif #endif }