AliPayManagerInit.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using DouYouSdk;
  2. using UniFramework.Event;
  3. using UnityEngine;
  4. namespace GFGGame.Launcher
  5. {
  6. public class AliPayManagerInit : SingletonBase<AliPayManagerInit>
  7. {
  8. public IAliSDKListener aliSDKListener;
  9. private static AndroidJavaClass _unityPlayerClass;
  10. private static AndroidJavaObject _mainActivity;
  11. public void InitSDK()
  12. {
  13. if (_unityPlayerClass == null)
  14. {
  15. _unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  16. }
  17. if (_mainActivity == null)
  18. {
  19. _mainActivity = _unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
  20. }
  21. AliDKHandler eventHandler = GameObject.Find("AliPayGameObject")?.GetComponent<AliDKHandler>();
  22. if (eventHandler == null)
  23. {
  24. GameObject gameObject = new GameObject("AliPayGameObject");
  25. gameObject.AddComponent<AliDKHandler>();
  26. GameObject.DontDestroyOnLoad(gameObject);
  27. }
  28. }
  29. /// <summary>
  30. /// 调起支付
  31. /// </summary>
  32. public void ShowSwitchPayment(string orderStr, string callBackObjectName = "AliPayGameObject", string callBackFuncName = "AliPayReceive")
  33. {
  34. Instance.CallDouYouMainActivity("AliPay", orderStr, callBackObjectName, callBackFuncName);
  35. }
  36. private void CallDouYouMainActivity(string functionName, params object[] args)
  37. {
  38. _mainActivity?.Call(functionName, args);
  39. }
  40. public class AliDKHandler : AliPaySDKHandler
  41. {
  42. /// <summary>
  43. /// 支付回调
  44. /// </summary>
  45. /// <param name="message">支付回调</param>
  46. public override void AliPayReceiveAb(string message)
  47. {
  48. Debug.Log($"AliPayReceiveAb:{message}");
  49. AliPayManagerInit.Instance.aliSDKListener?.AliPayReceiveAb(message);
  50. }
  51. }
  52. }
  53. }