From 7401a30ebfca6ca585ac592f05ea85bba73c7ff9 Mon Sep 17 00:00:00 2001 From: Mustapha_DT Date: Thu, 28 Nov 2024 14:00:57 +0800 Subject: [PATCH] [M] sync with n3 --- .../tysdk/Editor/IOSBuildProcessor.cs | 106 +++++++++++++----- .../tysdk/Plugins/Android/SDKManager.java | 74 ++++++++++-- .../tysdk/Plugins/iOS/TYSDKInterface.mm | 7 +- .../tysdk/Runtime/AppRequestReview.cs | 2 +- .../Packages/tysdk/Runtime/TYSdkFacade_Pay.cs | 19 ++-- .../Packages/tysdk/Runtime/TYSdkModel.cs | 13 ++- .../Packages/tysdk/Runtime/UnityBridgeFunc.cs | 10 ++ 7 files changed, 177 insertions(+), 54 deletions(-) diff --git a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs index 829e8ee..0b9d03f 100644 --- a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs +++ b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs @@ -5,6 +5,7 @@ using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; using UnityEditor; using System.IO; +using System.Collections.Generic; namespace tysdk.editor { @@ -46,7 +47,7 @@ namespace tysdk.editor string mainContent = File.ReadAllText(mainAppPath); string newContent = mainContent.Replace("#include ", @"#include ""../UnityFramework/UnityFramework.h"""); File.WriteAllText(mainAppPath, newContent); - + mainAppPath = Path.Combine(projPath, "Classes", "Preprocessor.h"); mainContent = File.ReadAllText(mainAppPath); newContent = mainContent.Replace("#define UNITY_USES_REMOTE_NOTIFICATIONS 0", "#define UNITY_USES_REMOTE_NOTIFICATIONS 1"); @@ -74,20 +75,20 @@ namespace tysdk.editor proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); proj.AddFrameworkToProject(target, "AppTrackingTransparency.framework", false); - proj.AddFrameworkToProject(target,"StoreKit.framework", false); - proj.AddFrameworkToProject(target,"CFNetwork.framework", false); - proj.AddFrameworkToProject(target,"CoreTelephony.framework", false); - proj.AddFrameworkToProject(target,"Security.framework", false); - proj.AddFrameworkToProject(target,"SystemConfiguration.framework", false); - proj.AddFrameworkToProject(target,"libc++.tbd", false); - proj.AddFrameworkToProject(target,"libsqlite3.tbd", false); - proj.AddFrameworkToProject(target,"libz.tbd", false); - proj.AddFrameworkToProject(target,"Accelerate.framework", false); - proj.AddFrameworkToProject(target,"AuthenticationServices.framework", false); - proj.AddFrameworkToProject(target,"SafariServices.framework", false); - proj.AddFrameworkToProject(target,"LocalAuthentication.framework", false); - proj.AddFrameworkToProject(target,"CoreGraphics.framework", false); - proj.AddFrameworkToProject(target,"WebKit.framework", false); + proj.AddFrameworkToProject(target, "StoreKit.framework", false); + proj.AddFrameworkToProject(target, "CFNetwork.framework", false); + proj.AddFrameworkToProject(target, "CoreTelephony.framework", false); + proj.AddFrameworkToProject(target, "Security.framework", false); + proj.AddFrameworkToProject(target, "SystemConfiguration.framework", false); + proj.AddFrameworkToProject(target, "libc++.tbd", false); + proj.AddFrameworkToProject(target, "libsqlite3.tbd", false); + proj.AddFrameworkToProject(target, "libz.tbd", false); + proj.AddFrameworkToProject(target, "Accelerate.framework", false); + proj.AddFrameworkToProject(target, "AuthenticationServices.framework", false); + proj.AddFrameworkToProject(target, "SafariServices.framework", false); + proj.AddFrameworkToProject(target, "LocalAuthentication.framework", false); + proj.AddFrameworkToProject(target, "CoreGraphics.framework", false); + proj.AddFrameworkToProject(target, "WebKit.framework", false); } private static void ProcessPlist(string root) @@ -98,16 +99,20 @@ namespace tysdk.editor PlistElementDict infoDict = plist.root; PlistElementArray urlTypesArray = null; - if (!infoDict.values.ContainsKey("CFBundleURLTypes")) { + if (!infoDict.values.ContainsKey("CFBundleURLTypes")) + { urlTypesArray = infoDict.CreateArray("CFBundleURLTypes"); - } else { + } + else + { urlTypesArray = infoDict.values["CFBundleURLTypes"].AsArray(); } - if (!infoDict.values.ContainsKey("NSUserActivityTypes")) { + if (!infoDict.values.ContainsKey("NSUserActivityTypes")) + { PlistElementArray userActivityTypes = infoDict.CreateArray("NSUserActivityTypes"); userActivityTypes.AddString("INSendMessageIntent"); - } + } else { PlistElementArray userActivityTypes = infoDict.values["NSUserActivityTypes"].AsArray(); @@ -115,9 +120,12 @@ namespace tysdk.editor } PlistElementArray queriesSchemesArray = null; - if (!infoDict.values.ContainsKey("LSApplicationQueriesSchemes")) { + if (!infoDict.values.ContainsKey("LSApplicationQueriesSchemes")) + { queriesSchemesArray = infoDict.CreateArray("LSApplicationQueriesSchemes"); - } else { + } + else + { queriesSchemesArray = infoDict.values["LSApplicationQueriesSchemes"].AsArray(); } @@ -134,8 +142,8 @@ namespace tysdk.editor infoDict.SetBoolean("UIFileSharingEnabled", true); // Google - string googleClientID = "com.googleusercontent.apps.481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62"; - CreateURLTypes(urlTypesArray.AddDict(), "google", googleClientID); + string googleClientID = "com.googleusercontent.apps.481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62"; + CreateURLTypes(urlTypesArray.AddDict(), "google", googleClientID); //Facebook { @@ -167,19 +175,59 @@ namespace tysdk.editor queriesSchemesArray.AddString("fbapi20150629"); queriesSchemesArray.AddString("fbapi20160328"); } + AddSKAdNetworkIdentifier(infoDict); File.WriteAllText(plistPath, plist.WriteToString()); } - private static void CreateURLTypes(PlistElementDict dict, string name, string scheme1) + private static void AddSKAdNetworkIdentifier(PlistElementDict infoDict) { - dict.SetString("CFBundleTypeRole", "Editor"); - dict.SetString("CFBundleURLName", name); - dict.CreateArray("CFBundleURLSchemes"); - PlistElementArray schemes = dict.values["CFBundleURLSchemes"].AsArray(); + + List skadnetworks = new List() { + "22mmun2rn5.skadnetwork", "238da6jt44.skadnetwork", "24t9a8vw3c.skadnetwork", "24zw6aqk47.skadnetwork", "252b5q8x7y.skadnetwork", "275upjj5gd.skadnetwork", + "294l99pt4k.skadnetwork", "2fnua5tdw4.skadnetwork", "2u9pt9hc89.skadnetwork", "32z4fx6l9h.skadnetwork", "3l6bd9hu43.skadnetwork", "3qcr597p9d.skadnetwork", + "3qy4746246.skadnetwork", "3rd42ekr43.skadnetwork", "3sh42y64q3.skadnetwork", "424m5254lk.skadnetwork", "4468km3ulz.skadnetwork", "44jx6755aq.skadnetwork", + "44n7hlldy6.skadnetwork", "47vhws6wlr.skadnetwork", "488r3q3dtq.skadnetwork", "4dzt52r2t5.skadnetwork", "4fzdc2evr5.skadnetwork", "4mn522wn87.skadnetwork", + "4pfyvq9l8r.skadnetwork", "4w7y6s5ca2.skadnetwork", "523jb4fst2.skadnetwork", "52fl2v3hgk.skadnetwork", "54nzkqm89y.skadnetwork", "578prtvx9j.skadnetwork", + "5a6flpkh64.skadnetwork", "5f5u5tfb26.skadnetwork", "5l3tpt7t6e.skadnetwork", "5lm9lj6jb7.skadnetwork", "5tjdwbrq8w.skadnetwork", "6964rsfnh4.skadnetwork", + "6g9af3uyq4.skadnetwork", "6p4ks3rnbw.skadnetwork", "6v7lgmsu45.skadnetwork", "6xzpu9s2p8.skadnetwork", "6yxyv74ff7.skadnetwork", "737z793b9f.skadnetwork", + "74b6s63p6l.skadnetwork", "7953jerfzd.skadnetwork", "79pbpufp6p.skadnetwork", "7fmhfwg9en.skadnetwork", "7rz58n8ntl.skadnetwork", "7ug5zh24hu.skadnetwork", + "84993kbrcf.skadnetwork", "89z7zv988g.skadnetwork", "8c4e2ghe7u.skadnetwork", "8m87ys6875.skadnetwork", "8r8llnkz5a.skadnetwork", "8s468mfl3y.skadnetwork", + "97r2b46745.skadnetwork", "9b89h5y424.skadnetwork", "9g2aggbj52.skadnetwork", "9nlqeag3gk.skadnetwork", "9rd848q2bz.skadnetwork", "9t245vhmpl.skadnetwork", + "9vvzujtq5s.skadnetwork", "9yg77x724h.skadnetwork", "a2p9lx4jpn.skadnetwork", "a7xqa6mtl2.skadnetwork", "a8cz6cu7e5.skadnetwork", "av6w8kgt66.skadnetwork", + "b9bk5wbcq9.skadnetwork", "bxvub5ada5.skadnetwork", "c3frkrj4fj.skadnetwork", "c6k4g5qg8m.skadnetwork", "cg4yq2srnc.skadnetwork", "cj5566h2ga.skadnetwork", + "cp8zw746q7.skadnetwork", "cs644xg564.skadnetwork", "cstr6suwn9.skadnetwork", "cwn433xbcr.skadnetwork", "dbu4b84rxf.skadnetwork", "dkc879ngq3.skadnetwork", + "dzg6xy7pwj.skadnetwork", "e5fvkxwrpn.skadnetwork", "ecpz2srf59.skadnetwork", "eh6m2bh4zr.skadnetwork", "ejvt5qm6ak.skadnetwork", "f38h382jlk.skadnetwork", + "f73kdq92p3.skadnetwork", "f7s53z58qe.skadnetwork", "feyaarzu9v.skadnetwork", "g28c52eehv.skadnetwork", "g2y4y55b64.skadnetwork", "g6gcrrvk4p.skadnetwork", + "ggvn48r87g.skadnetwork", "glqzh8vgby.skadnetwork", "gta8lk7p23.skadnetwork", "gta9lk7p23.skadnetwork", "h65wbv5k3f.skadnetwork", "hb56zgv37p.skadnetwork", + "hdw39hrw9y.skadnetwork", "hs6bdukanm.skadnetwork", "k674qkevps.skadnetwork", "k6y4y55b64.skadnetwork", "kbd757ywx3.skadnetwork", "kbmxgpxpgc.skadnetwork", + "klf5c3l5u5.skadnetwork", "krvm3zuq6h.skadnetwork", "lr83yxwka7.skadnetwork", "ludvb6z3bs.skadnetwork", "m297p6643m.skadnetwork", "m5mvw97r93.skadnetwork", + "m8dbw4sv7c.skadnetwork", "mj797d8u6f.skadnetwork", "mlmmfzh3r3.skadnetwork", "mls7yz5dvl.skadnetwork", "mp6xlyr22a.skadnetwork", "mqn7fxpca7.skadnetwork", + "mtkv5xtk9e.skadnetwork", "n38lu8286q.skadnetwork", "n66cz3y3bx.skadnetwork", "n6fk4nfna4.skadnetwork", "n9x2a789qt.skadnetwork", "nzq8sh4pbs.skadnetwork", + "p78axxw29g.skadnetwork", "ppxm28t8ap.skadnetwork", "prcb7njmu6.skadnetwork", "pwa73g5rt2.skadnetwork", "pwdxu55a5a.skadnetwork", "qqp299437r.skadnetwork", + "qu637u8glc.skadnetwork", "r45fhb6rf7.skadnetwork", "rvh3l7un93.skadnetwork", "rx5hdcabgc.skadnetwork", "s39g8k73mm.skadnetwork", "s69wq72ugq.skadnetwork", + "su67r6k2v3.skadnetwork", "t38b2kh725.skadnetwork", "t6d3zquu66.skadnetwork", "tl55sbb4fm.skadnetwork", "tvvz7th9br.skadnetwork", "u679fj5vs4.skadnetwork", + "uw77j35x4d.skadnetwork", "v4nxqhlyqp.skadnetwork", "v72qych5uu.skadnetwork", "v79kvwwj4g.skadnetwork", "v9wttpbfk9.skadnetwork", "vcra2ehyfk.skadnetwork", + "vutu7akeur.skadnetwork", "w9q455wk68.skadnetwork", "wg4vff78zm.skadnetwork", "wzmmz9fp6w.skadnetwork", "x44k69ngh6.skadnetwork", "x5l83yy675.skadnetwork", + "x8jxxk4ff5.skadnetwork", "x8uqf25wch.skadnetwork", "xga6mpmplv.skadnetwork", "xy9t38ct57.skadnetwork", "y45688jllp.skadnetwork", "y5ghdn5j9k.skadnetwork", + "yclnxrl5pm.skadnetwork", "ydx93a7ass.skadnetwork", "z24wtl6j62.skadnetwork", "zmvfpc5aq8.skadnetwork", "zq492l623r.skadnetwork" + }; + var items = infoDict.CreateArray("SKAdNetworkItems"); + var key = "SKAdNetworkIdentifier"; + foreach (var identifier in skadnetworks) + { + items.AddDict().SetString(key, identifier); + } + + } + + private static void CreateURLTypes(PlistElementDict dict, string name, string scheme1) + { + dict.SetString("CFBundleTypeRole", "Editor"); dict.SetString("CFBundleURLName", name); + dict.CreateArray("CFBundleURLSchemes"); + PlistElementArray schemes = dict.values["CFBundleURLSchemes"].AsArray(); schemes.AddString(scheme1); } } } - #endif diff --git a/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java b/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java index ba28d14..b595b5a 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java +++ b/sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java @@ -13,6 +13,12 @@ import com.barton.log.builder.ParamsBuilder; import com.barton.log.ebarton.BaseUrl; import com.barton.log.ebarton.EventType; import com.barton.log.logapi.IGASDK; +import com.google.android.gms.tasks.Task; +import com.google.android.play.core.review.ReviewException; +import com.google.android.play.core.review.ReviewInfo; +import com.google.android.play.core.review.ReviewManager; +import com.google.android.play.core.review.ReviewManagerFactory; +import com.google.android.play.core.review.model.ReviewErrorCode; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.tuyoo.gamesdk.api.SDKAPI; @@ -32,7 +38,6 @@ import org.json.JSONObject; import java.util.HashMap; import java.util.Map; - public class SDKManager { private final static Handler handler = new Handler(Looper.getMainLooper()); @@ -41,10 +46,6 @@ public class SDKManager { private static String curType = TuYooClientID.tyGuest; public static void InitSDK(Activity activity) { - Log.e(TAG,"SDKManager:::InitSDK"); - Log.e(TAG,"SDK_APPID:::" + ConfigManager.SDK_APPID); - Log.e(TAG,"SDK_CLIENTID:::" + ConfigManager.SDK_CLIENTID); - Log.e(TAG,"SDK_LOGIN_SERVER_URL:::" + ConfigManager.SDK_LOGIN_SERVER_URL); activity.runOnUiThread(() -> { SDKAPI.getIns().lightModeEnable(); try { @@ -80,7 +81,6 @@ public class SDKManager { userInfoResult.put("result", userInfoReorganization); result.put("respObj", userInfoResult); } else { - Log.e(TAG,"errStr:::::" +s); result.put("errStr", s); } @@ -105,7 +105,6 @@ public class SDKManager { @Override public void callback(int i, String s) { - Log.e(TAG,"SDKCallBack.Pay callback: " + i + " \n" + s); SDKLog.i("SDKCallBack.Pay callback: " + i + " \n" + s); try { JSONObject result = new JSONObject(); @@ -137,7 +136,6 @@ public class SDKManager { } public static void UnityGetIdentityFun(String type) { - Log.e(TAG,"UnityGetIdentityFun : " + type); SDKLog.i("UnityGetIdentityFun : " + type); handler.post(new Runnable() { @Override @@ -148,7 +146,6 @@ public class SDKManager { } public static void UnityLogin(String type) { - Log.e(TAG,"UnityLogin : " + type); SDKLog.i("UnityLogin : " + type); handler.post(new Runnable() { @Override @@ -159,7 +156,6 @@ public class SDKManager { } public static void UnityLogOutByChannel(String type) { -// Log.e(TAG,"UnityLoginOut!!!"); SDKLog.i("UnityLoginOut : "); handler.post(() -> SDKAPI.getIns().logout(type)); } @@ -340,7 +336,63 @@ public class SDKManager { paramsBuilder.append(key, map.get(key).toString()); } } - GetGameGa().track(EventType.TRACK, eventstr, paramsBuilder); +// GA_TRACK = 1, //默认类型 +// GA_CION = 2, //金流相关事件 +// GA_PAY = 3, //支付相关事件 +// GA_GAME = 4, //游戏行为 +// GA_LOGIN = 5, //登录注册相关事件 +// GA_PUSH = 6, //推送相关事件 +// GA_ADBOX = 7, //adbox相关事件 +// GA_PREFORMANCE = 8, //性能上报相关事件 +// GA_SDK = 9, //SDK相关事件 +// GA_ABTest = 10, //abtest相关事件 + + switch (type) + { + case 2: + GetGameGa().track(EventType.COIN , eventstr, paramsBuilder); + break; + case 3: + GetGameGa().track(EventType.PAY , eventstr, paramsBuilder); + break; + case 4: + GetGameGa().track(EventType.GAME , eventstr, paramsBuilder); + break; + case 5: + GetGameGa().track(EventType.LOGIN , eventstr, paramsBuilder); + break; + case 6: + GetGameGa().track(EventType.PUSH , eventstr, paramsBuilder); + break; + case 7: + GetGameGa().track(EventType.ADBOX , eventstr, paramsBuilder); + break; + case 8: + GetGameGa().track(EventType.PREFORMANCE , eventstr, paramsBuilder); + break; + case 9: + GetGameGa().track(EventType.SDK , eventstr, paramsBuilder); + break; + default: + GetGameGa().track(EventType.TRACK , eventstr, paramsBuilder); + break; + } + } + + public static void Review() + { + ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext()); + Task request = manager.requestReviewFlow(); + request.addOnCompleteListener(reqTask -> { + if (reqTask.isSuccessful()) { + ReviewInfo reviewInfo = reqTask.getResult(); + Activity activity = UnityPlayer.currentActivity; + manager.launchReviewFlow(activity, reviewInfo); + } else { + @ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode(); + Log.e(TAG,"Review Error code: " + reviewErrorCode); + } + }); } } diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm index 2b2d841..d4b9162 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm @@ -2,7 +2,7 @@ #import #import #import -#import +#import #import "TYConfig.h" #define TOKEN_ERROR @"-8" @@ -228,9 +228,10 @@ extern "C" { NSError* err; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err]; if(!err){ - [[GASDK getGAlog:SDK_PROJECTID] initWithGameId:SDK_GAMEID clientId:SDK_CLIENTID withCommonParams:dic serverUrl:GA_INTERNATIONAL]; + NSString* nsEvent = [NSString stringWithFormat: @"%s", eventstr]; + GASDK *gaSDK = [GASDK getGAlog:SDK_PROJECTID]; + [gaSDK track:dic type:GAEventType(type) event:nsEvent]; } - } void LinkGoogle(const int userId) diff --git a/sdk-intergration/Packages/tysdk/Runtime/AppRequestReview.cs b/sdk-intergration/Packages/tysdk/Runtime/AppRequestReview.cs index 0215cbd..2769b1c 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/AppRequestReview.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/AppRequestReview.cs @@ -8,7 +8,7 @@ namespace tysdk #if UNITY_EDITOR || UNITY_ANDROID public static void RequestReview(string customReviewURL) { - Debug.Log("RequestReview is not supported on this platform"); + tysdk.UnityBridgeFunc.Review(); } #elif UNITY_IOS [DllImport("__Internal")] diff --git a/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade_Pay.cs b/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade_Pay.cs index 256ad92..f0414e5 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade_Pay.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade_Pay.cs @@ -3,6 +3,8 @@ using System.Linq; using System.Threading.Tasks; using Newtonsoft.Json.Linq; using UnityEngine; +using System; +using System.Text; namespace tysdk { @@ -19,25 +21,22 @@ namespace tysdk =================================================*/ //public async Task Pay(string prodId, string prodPrice, string prodName, int count, string pType, string price_amount_micros =null) - public async Task Pay(SKUDetail prod, int count, float usdprice) + public async Task Pay(SKUDetail prod, int count, float usdprice, JObject purchaseInfo) { if (!IsLoggedIn) return new PaymentInfo() { code = "-1", msg = "未登录" }; var orderId = System.Guid.NewGuid().ToString(); - Dictionary extraDic = new Dictionary() { - {"paytime" , System.DateTime.UtcNow.Ticks}, - {"sum" , prod.ProdPrice * count}, - }; + if(purchaseInfo == null) + purchaseInfo = new JObject(); - - string extraInfo = Newtonsoft.Json.JsonConvert.SerializeObject(extraDic); + string extraInfo = purchaseInfo.ToString(Newtonsoft.Json.Formatting.None); //to base64 - extraInfo = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(extraInfo)); + extraInfo = Convert.ToBase64String(Encoding.UTF8.GetBytes(extraInfo)); + Debug.Log("[TYSdk] extraInfo: " + extraInfo); var prodId = prod.ProdID; var prodPrice = usdprice.ToString(); var prodName = prod.title; - var pType = "googleiab.global.app"; #if UNITY_EDITOR @@ -55,6 +54,8 @@ namespace tysdk return result; #elif UNITY_ANDROID + + var pType = "googleiab.global.app"; var taskSource = new TaskCompletionSource(); callbacks.Add("PayResult", (ITYSdkCallback callback) => diff --git a/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs b/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs index fe27bbb..ed5ef3d 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs @@ -36,7 +36,9 @@ namespace tysdk public class PaymentInfo : ITYSdkCallback { - public bool isSuccess => code == "0"; + public bool isSuccessFromSdk => code == "0"; + public bool isSuccess => isSuccessFromSdk && confirmed; + private bool confirmed {get; set;} = false; public int count; public string orderId; public string productId; @@ -45,6 +47,15 @@ namespace tysdk public string code; public string msg; + public bool Check(string orderId, string productId) + { + confirmed = orderId == this.orderId && productId == this.productId; + + if(!confirmed) + UnityEngine.Debug.LogWarning("[TYSdk Pay] order not confirmed"); + return confirmed; + } + public override string ToString() { return Newtonsoft.Json.JsonConvert.SerializeObject(this); diff --git a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs index 65f43fd..1617ca9 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs @@ -50,6 +50,8 @@ namespace tysdk public static int GetATT() {return 1;} + public static void Review() { } + #elif UNITY_ANDROID private static string SDK_CLASS = "com.unity3d.player.SDKManager"; @@ -195,6 +197,14 @@ namespace tysdk public static int GetATT() {return 1;} + public static void Review() + { + using(var sdkManager = new AndroidJavaClass(SDK_CLASS)) + { + sdkManager.CallStatic("Review"); + } + } + #elif UNITY_IOS