QDDouYouManagerIos.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. using System;
  2. using ET;
  3. using UnityEngine;
  4. using GFGGame.Launcher;
  5. using Unity.Plastic.Newtonsoft.Json;
  6. namespace GFGGame
  7. {
  8. public class QDDouYouManagerIos : SingletonBase<QDDouYouManagerIos>
  9. {
  10. public bool isLogining;
  11. //ios sdk 返回的
  12. public string uid;
  13. public string account;
  14. public string token;
  15. public void Init()
  16. {
  17. Debug.Log("实例化DouYouSDKListenerIos");
  18. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos = new DouYouSDKListenerIos();
  19. }
  20. public void Login()
  21. {
  22. QDDouYouManagerInitIos.Instance.ShowLogin();
  23. }
  24. public void OnCreateRole()
  25. {
  26. QDManager.PushRoleAction(DouYouRoleLogReportType.CreateRole);
  27. }
  28. public void OnEnterGame()
  29. {
  30. QDManager.PushRoleAction(DouYouRoleLogReportType.EnterGame);
  31. }
  32. public void OnQuitToLoginView()
  33. {
  34. Debug.Log($"DouYou ios OnQuitToLoginView");
  35. }
  36. public void Logout()
  37. {
  38. Debug.Log($"Game.HotUpdate DouYou ios Logout");
  39. QDDouYouManagerInitIos.Instance.Logout();
  40. }
  41. public void LoginOutBefore()
  42. {
  43. QDManager.PushRoleAction(DouYouRoleLogReportType.ExitGame);
  44. }
  45. public void Pay(int buyID, int count, string orderID, long price)
  46. {
  47. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(buyID);
  48. if (shopCfg == null)
  49. {
  50. Log.Error($"recharge {buyID} config not found!");
  51. return;
  52. }
  53. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId);
  54. if (itemCfg == null)
  55. {
  56. Log.Error($"recharge {buyID} itemCfgId:{shopCfg.itemId} config not found!");
  57. return;
  58. }
  59. ItemCfg costItemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.costId);
  60. if (costItemCfg == null)
  61. {
  62. Log.Error($"recharge {buyID} itemCfgId:{shopCfg.costId} config not found!");
  63. return;
  64. }
  65. var zoneScene = GameGlobal.zoneScene;
  66. if (zoneScene == null) return;
  67. if (zoneScene.GetComponent<RoleInfosComponent>() == null ||
  68. zoneScene.GetComponent<RoleInfosComponent>().IsDisposed) return;
  69. var roleInfo = zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRole();
  70. if (roleInfo == null) return;
  71. if (GameGlobal.myNumericComponent == null) return;
  72. int lvl = GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);
  73. int vipLvl = GameGlobal.myNumericComponent.GetAsInt(NumericType.VipLevel);
  74. if (zoneScene.GetComponent<ServerInfosComponent>() == null) return;
  75. if (zoneScene.GetComponent<ServerInfosComponent>().recentlyServerInfo == null) return;
  76. var serverInfosComponent = zoneScene.GetComponent<ServerInfosComponent>();
  77. //自定义参数
  78. string cpOrderId = orderID;
  79. string productPrice = price.ToString();
  80. string productId = shopCfg.id.ToString();
  81. string productName = shopCfg.productName;
  82. string productDesc = "";
  83. string productCount = count.ToString();
  84. string exchangeRate = 1.ToString();
  85. string currencyName = costItemCfg.name;
  86. string serverId = (serverInfosComponent?.CurrentServerId ?? 0).ToString();
  87. string serverName = serverInfosComponent?.recentlyServerInfo?.ServerName ?? "";
  88. string roleId = roleInfo.Id.ToString();
  89. string roleName = roleInfo.Name;
  90. string roleLevel = lvl.ToString();
  91. string roleVip = vipLvl.ToString();
  92. string partyName = LeagueDataManager.Instance.LeagueData?.Name ?? "";
  93. string roleBalence = "0";
  94. string other = orderID + "|gfg|" + roleInfo.Id;
  95. QDDouYouManagerInitIos.Instance.ShowPay(cpOrderId, productPrice, productId, productName, productDesc,
  96. productCount, exchangeRate, currencyName, serverId, serverName, roleId, roleName, roleLevel, roleVip,
  97. partyName, roleBalence, other);
  98. }
  99. public void Exit()
  100. {
  101. QDManager.PushRoleAction(DouYouRoleLogReportType.ExitGame);
  102. QDDouYouManagerInitIos.Instance.Logout();
  103. }
  104. }
  105. /// <summary>
  106. /// SDK回调
  107. /// </summary>
  108. public class DouYouSDKListenerIos : IDouYouSDKListenerIos
  109. {
  110. /// <summary>
  111. /// SDK实例化成功
  112. /// </summary>
  113. /// <param name="message">SDK 实例化成功</param>
  114. public void InitSuccessAb(string message)
  115. {
  116. Debug.Log("Game.HotUpdate InitSuccessAb: " + message);
  117. }
  118. public void InitErrorAb(string message)
  119. {
  120. Debug.Log("Game.HotUpdate InitErrorAb: " + message);
  121. }
  122. /// <summary>
  123. /// 登录成功
  124. /// </summary>
  125. /// <param name="message">resUid + "|gfg|" + token</param>
  126. public void LoginSuccessAb(string message)
  127. {
  128. Debug.Log("Game.HotUpdate ios LoginSuccessAb: " + message);
  129. DouYouIosSdkLoginResModel douYouIosSdkLoginResModel = JsonConvert.DeserializeObject<DouYouIosSdkLoginResModel>(message);
  130. if (douYouIosSdkLoginResModel == null)
  131. {
  132. Log.Error($"注意,解析登录回调失败,回调的字符串为 {message} douYouIosSdkLoginResModel is null.");
  133. return;
  134. }
  135. QDDouYouManagerIos.Instance.isLogining = false;
  136. QDDouYouManagerIos.Instance.uid = douYouIosSdkLoginResModel.uid;
  137. QDDouYouManagerIos.Instance.token = douYouIosSdkLoginResModel.token;
  138. //登录成功的回调
  139. EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, douYouIosSdkLoginResModel.uid);
  140. }
  141. /// <summary>
  142. /// 登录失败
  143. /// </summary>
  144. /// <param name="message"></param>
  145. public void LoginErrorAb(string message)
  146. {
  147. Debug.Log("Game.HotUpdate LoginErrorAb: " + message);
  148. }
  149. /// <summary>
  150. /// 切换账号回调---先当成退出登录处理
  151. /// </summary>
  152. public void SwitchAccountsAb(string message)
  153. {
  154. Debug.Log("Game.HotUpdate SwitchAccountsAb: " + message);
  155. GameController.QuitToLoginView(true);
  156. EventAgent.DispatchEvent(ConstMessage.OUT_LOGIN);
  157. }
  158. /// <summary>
  159. /// 退出登录后
  160. /// </summary>
  161. /// <param name="message">退出登录成功!</param>
  162. public void LogoutSuccessAb(string message)
  163. {
  164. Debug.Log("Game.HotUpdate LogoutSuccessAb: " + message);
  165. GameController.QuitToLoginView(true);
  166. EventAgent.DispatchEvent(ConstMessage.OUT_LOGIN);
  167. }
  168. /// <summary>
  169. /// 退出登录失败
  170. /// </summary>
  171. /// <param name="message"></param>
  172. public void LogoutErrorAb(string message)
  173. {
  174. Debug.Log("Game.HotUpdate LogoutErrorAb: " + message);
  175. }
  176. /// <summary>
  177. /// 支付失败
  178. /// </summary>
  179. /// <param name="message">code + "|gfg|" + params.toString()</param>
  180. public void PayErrorAb(string message)
  181. {
  182. Debug.Log("Game.HotUpdate PayErrorAb: " + message);
  183. //改变临时订单状态为失败
  184. }
  185. /// <summary>
  186. /// 支付成功
  187. /// </summary>
  188. /// <param name="message">code + "|gfg|" + params.toString()</param>
  189. public void PaySuccessAb(string message)
  190. {
  191. Debug.Log("Game.HotUpdate PaySuccessAb" + message);
  192. //改变临时订单状态为支付成功
  193. QDManager.PushRoleAction(DouYouRoleLogReportType.Pay);
  194. }
  195. //角色升级上报成功回调
  196. public void RoleInfoReportSuccessAb(string message)
  197. {
  198. }
  199. //角色升级上报失败回调
  200. public void RoleInfoReportErrorAb(string message)
  201. {
  202. }
  203. }
  204. }