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")); }
public void OnTransactionError(TransactionErrorDetails details) { UnityPurchasingInvokeTransactionErrorCallback(_pCallbacks, MiniJSON.Json.Serialize(details.ToJsonDictionary())); }
public void OnTransactionError(TransactionErrorDetails details) { listener.Call("onTransactionError", AndroidNativePromoAdapter.getJavaTransactionErrorDetails(details)); }