Quantcast
Channel: Questions in topic: "iap"
Viewing all articles
Browse latest Browse all 595

Last unity iap version bug !

$
0
0
**unity IAP for UWP build "Initialized" but return google play error on windows 10 platform when try buying .** ![alt text][1] **I use the Last "Sample IAP Project" and Last unityIap this is my code:** using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.Purchasing; using UnityEngine.UI; using UnityEngine.Purchasing.Security; public class MyIAPManager : MonoBehaviour, IStoreListener { private static IStoreController m_StoreController; private static IExtensionProvider m_StoreExtensionProvider; subsystems. private IAppleExtensions m_AppleExtensions; private IGooglePlayStoreExtensions m_GoogleExtensions; private IMicrosoftExtensions m_MicrosoftExtensions; public static string RemoveAds = "RemoveAds"; public static string GOLD_50 = "gold50"; public static string NONCONSUMABLE1 = "nonconsume1"; public static string WEEKLYSUB = "weeklysub"; public Text myText; void Awake() { } void Start() { // If we haven't set up the Unity Purchasing reference if (m_StoreController == null) { // Begin to configure our connection to Purchasing, can use button click instead //InitializePurchasing(); } } public void MyInitialize() { InitializePurchasing(); } public void InitializePurchasing() { if (IsInitialized()) { return; } var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.Configure().useMockBillingSystem = true; builder.AddProduct(RemoveAds, ProductType.Consumable); MyDebug("Starting Initialized..."); UnityPurchasing.Initialize(this, builder); } private bool IsInitialized() { return m_StoreController != null && m_StoreExtensionProvider != null; } public void BuySubscription() { BuyProductID(WEEKLYSUB); } public void BuyGold50() { BuyProductID(RemoveAds); } public void BuyNonConsumable() { BuyProductID(NONCONSUMABLE1); } public void RestorePurchases() { m_StoreExtensionProvider.GetExtension().RestoreTransactions(result => { if (result) { MyDebug("Restore purchases succeeded."); } else { MyDebug("Restore purchases failed."); } }); } void BuyProductID(string productId) { if (IsInitialized()) { UnityEngine.Purchasing.Product product = m_StoreController.products.WithID(productId); if (product != null && product.availableToPurchase) { MyDebug(string.Format("Purchasing product:" + product.definition.id.ToString())); m_StoreController.InitiatePurchase(product); } else { MyDebug("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase"); } } else { MyDebug("BuyProductID FAIL. Not initialized."); } } public void ListProducts() { foreach (UnityEngine.Purchasing.Product item in m_StoreController.products.all) { if (item.receipt != null) { MyDebug("Receipt found for Product = " + item.definition.id.ToString()); } } } public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { MyDebug("OnInitialized: PASS"); m_StoreController = controller; m_StoreExtensionProvider = extensions; m_AppleExtensions = extensions.GetExtension(); m_GoogleExtensions = extensions.GetExtension(); m_MicrosoftExtensions = extensions.GetExtension(); m_GoogleExtensions?.SetDeferredPurchaseListener(OnPurchaseDeferred); Dictionary dict = m_AppleExtensions.GetIntroductoryPriceDictionary(); foreach (UnityEngine.Purchasing.Product item in controller.products.all) { if (item.receipt != null) { string intro_json = (dict == null || !dict.ContainsKey(item.definition.storeSpecificId)) ? null : dict[item.definition.storeSpecificId]; if (item.definition.type == ProductType.Subscription) { SubscriptionManager p = new SubscriptionManager(item, intro_json); SubscriptionInfo info = p.getSubscriptionInfo(); MyDebug("SubInfo: " + info.getProductId().ToString()); MyDebug("isSubscribed: " + info.isSubscribed().ToString()); MyDebug("isFreeTrial: " + info.isFreeTrial().ToString()); } } } } public void OnPurchaseDeferred(Product product) { MyDebug("Deferred product " + product.definition.id.ToString()); } public void OnInitializeFailed(InitializationFailureReason error) { // Purchasing set-up has not succeeded. Check error for reason. Consider sharing this reason with the user. MyDebug("OnInitializeFailed InitializationFailureReason:" + error); } public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { try { Debug.Log("Application.identifier="+ Application.identifier); var validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier); var result = validator.Validate(args.purchasedProduct.receipt); MyDebug("Validate = " + result.ToString()); foreach (IPurchaseReceipt productReceipt in result) { MyDebug("Valid receipt for " + productReceipt.productID.ToString()); } } catch (Exception e) { MyDebug("Error is " + e.Message.ToString()); } MyDebug(string.Format("ProcessPurchase: " + args.purchasedProduct.definition.id)); return PurchaseProcessingResult.Complete; } public void OnPurchaseFailed(UnityEngine.Purchasing.Product product, PurchaseFailureReason failureReason) { MyDebug(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason)); } private void MyDebug(string debug) { Debug.Log(debug); myText.text += "\r\n" + debug; } } please help thnx. [1]: /storage/temp/185451-sd.png

Viewing all articles
Browse latest Browse all 595

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>