internal static AndroidJavaObject getJavaTransactionErrorDetails(TransactionErrorDetails details)
        {
            var transactionErrorIndex  = (int)details.transactionError;
            var transactionErrorClass  = new AndroidJavaClass("com.unity3d.services.purchasing.core.TransactionError");
            var transactionErrorValues = transactionErrorClass.CallStatic <AndroidJavaObject>("values");
            var transactionError       = new AndroidJavaClass("java.lang.reflect.Array").CallStatic <AndroidJavaObject>("get", transactionErrorValues, transactionErrorIndex);

            var storeIndex  = (int)details.store;
            var storeClass  = new AndroidJavaClass("com.unity3d.services.purchasing.core.Store");
            var storeValues = storeClass.CallStatic <AndroidJavaObject>("values");
            var store       = new AndroidJavaClass("java.lang.reflect.Array").CallStatic <AndroidJavaObject>("get", storeValues, storeIndex);

            var builder = new AndroidJavaClass("com.unity3d.services.purchasing.core.TransactionErrorDetails").CallStatic <AndroidJavaObject>("newBuilder");

            builder.Call <AndroidJavaObject>("withTransactionError", transactionError);
            builder.Call <AndroidJavaObject>("withExceptionMessage", details.exceptionMessage);
            builder.Call <AndroidJavaObject>("withStore", store);
            builder.Call <AndroidJavaObject>("withStoreSpecificErrorCode", details.storeSpecificErrorCode);
            if (details.extras != null)
            {
                foreach (KeyValuePair <string, object> entry in details.extras)
                {
                    builder.Call <AndroidJavaObject>("putExtra", entry.Key, entry.Value);
                }
            }

            return(builder.Call <AndroidJavaObject>("build"));
        }
Exemple #2
0
 public void OnTransactionError(TransactionErrorDetails details)
 {
     UnityPurchasingInvokeTransactionErrorCallback(_pCallbacks, MiniJSON.Json.Serialize(details.ToJsonDictionary()));
 }
Exemple #3
0
 public void OnTransactionError(TransactionErrorDetails details)
 {
     listener.Call("onTransactionError", AndroidNativePromoAdapter.getJavaTransactionErrorDetails(details));
 }