using DouYouSdk; using UniFramework.Event; using UnityEngine; namespace GFGGame.Launcher { public class AliPayManagerInit : SingletonBase { public IAliSDKListener aliSDKListener; private static AndroidJavaClass _unityPlayerClass; private static AndroidJavaObject _mainActivity; public void InitSDK() { if (_unityPlayerClass == null) { _unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); } if (_mainActivity == null) { _mainActivity = _unityPlayerClass.GetStatic("currentActivity"); } AliDKHandler eventHandler = GameObject.Find("AliPayGameObject")?.GetComponent(); if (eventHandler == null) { GameObject gameObject = new GameObject("AliPayGameObject"); gameObject.AddComponent(); GameObject.DontDestroyOnLoad(gameObject); } } /// /// 调起支付 /// public void ShowSwitchPayment(string orderStr, string callBackObjectName = "AliPayGameObject", string callBackFuncName = "AliPayReceive") { Instance.CallDouYouMainActivity("AliPay", orderStr, callBackObjectName, callBackFuncName); } private void CallDouYouMainActivity(string functionName, params object[] args) { _mainActivity?.Call(functionName, args); } public class AliDKHandler : AliPaySDKHandler { /// /// 支付回调 /// /// 支付回调 public override void AliPayReceiveAb(string message) { Debug.Log($"AliPayReceiveAb:{message}"); AliPayManagerInit.Instance.aliSDKListener?.AliPayReceiveAb(message); } } } }