QDDouYouManagerInitIos.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. using DouYouSdk;
  2. using LitJson;
  3. using UniFramework.Event;
  4. using UnityEngine;
  5. namespace GFGGame.Launcher
  6. {
  7. public class QDDouYouManagerInitIos : SingletonBase<QDDouYouManagerInitIos>
  8. {
  9. public IDouYouSDKListenerIos douYouSDKListenerIos;
  10. public DouYouIosSDKHandler douYouIosSDKHandler;
  11. public void InitSDK(string gameId, string adId, bool showLog)
  12. {
  13. if (douYouIosSDKHandler == null)
  14. {
  15. GameObject gameObject = new GameObject("IosReceiverGameObj");
  16. gameObject.AddComponent<DouYouIosSDKHandler>();
  17. GameObject.DontDestroyOnLoad(gameObject);
  18. douYouIosSDKHandler =
  19. GameObject.Find("IosReceiverGameObj")?.GetComponent<DouYouIosSDKHandler>();
  20. }
  21. Instance.InitWithDigitMap(gameId, adId, showLog);
  22. }
  23. /// <summary>
  24. /// 实例化sdk
  25. /// </summary>
  26. /// <param name="gameId"></param>
  27. /// <param name="adId"></param>
  28. /// <param name="shouldLog"></param>
  29. public void InitWithDigitMap(string gameId, string adId, bool shouldLog)
  30. {
  31. douYouIosSDKHandler?.SDKInitWithDigitMap(gameId, adId, shouldLog);
  32. }
  33. /// <summary>
  34. /// 显示登录
  35. /// </summary>
  36. public void ShowLogin()
  37. {
  38. douYouIosSDKHandler?.SDKLogin();
  39. }
  40. /// <summary>
  41. /// 退出登录
  42. /// </summary>
  43. public void Logout()
  44. {
  45. douYouIosSDKHandler?.SDKLogout();
  46. }
  47. /// <summary>
  48. /// 显示支付
  49. /// </summary>
  50. /// <param name="cpOrderId">订单号</param>
  51. /// <param name="productPrice">订单金额(元)</param>
  52. /// <param name="productId">产品ID</param>
  53. /// <param name="productName">产品名称</param>
  54. /// <param name="productDesc">商品描述</param>
  55. /// <param name="productCount">购买数量</param>
  56. /// <param name="exchangeRate">比例(默认 - 1)</param>
  57. /// <param name="currencyName">金币</param>
  58. /// <param name="serverId">区服ID</param>
  59. /// <param name="serverName">区服名称</param>
  60. /// <param name="roleId">角色ID</param>
  61. /// <param name="roleName">角色名称</param>
  62. /// <param name="roleLevel">角色等级</param>
  63. /// <param name="roleVip">角色VIP</param>
  64. /// <param name="partyName">工会名称</param>
  65. /// <param name="roleBalence">游戏币</param>
  66. /// <param name="ext">透传参数</param>
  67. public void ShowPay(string cpOrderId, string productPrice, string productId, string productName,
  68. string productDesc, string productCount, string exchangeRate, string currencyName, string serverId,
  69. string serverName, string roleId, string roleName, string roleLevel, string roleVip, string partyName,
  70. string roleBalence, string ext)
  71. {
  72. var data = new
  73. {
  74. cp_order_id = HandleNullString(cpOrderId),
  75. product_price = HandleNullString(productPrice),
  76. product_id = HandleNullString(productId),
  77. product_name = HandleNullString(productName),
  78. product_desc = HandleNullString(productDesc),
  79. product_count = HandleNullString(productCount),
  80. exchange_rate = HandleNullString(exchangeRate),
  81. currency_name = HandleNullString(currencyName),
  82. server_id = HandleNullString(serverId),
  83. server_name = HandleNullString(serverName),
  84. role_id = HandleNullString(roleId),
  85. role_name = HandleNullString(roleName),
  86. role_level = HandleNullString(roleLevel),
  87. role_vip = HandleNullString(roleVip),
  88. party_name = HandleNullString(partyName),
  89. role_balance = HandleNullString(roleBalence),
  90. ext = HandleNullString(ext)
  91. };
  92. string paymentJson = JsonMapper.ToJson(data);
  93. douYouIosSDKHandler?.SdkPaymentWithJson(paymentJson);
  94. }
  95. /// <summary>
  96. /// 上报角色信息
  97. /// </summary>
  98. /// <param name="type">数据类型(1 - 进入游戏、2 - 创建角色、3 - 角色升级、4 - 退出、5 - 充值)</param>
  99. /// <param name="serverId">区服ID</param>
  100. /// <param name="serverName">区服名称</param>
  101. /// <param name="roleId">角色ID</param>
  102. /// <param name="roleName">角色名称</param>
  103. /// <param name="roleLevel">角色等级</param>
  104. /// <param name="roleVip">角色VIP</param>
  105. /// <param name="partyName">工会名称</param>
  106. /// <param name="roleBalence">游戏币</param>
  107. public void ReportRoleInfo(string type, string serverId, string serverName, string roleId, string roleName,
  108. string roleLevel, string roleVip, string partyName, string roleBalence)
  109. {
  110. var data = new
  111. {
  112. type = HandleNullString(type),
  113. server_id = HandleNullString(serverId),
  114. server_name = HandleNullString(serverName),
  115. role_id = HandleNullString(roleId),
  116. role_name = HandleNullString(roleName),
  117. role_level = HandleNullString(roleLevel),
  118. role_vip = HandleNullString(roleVip),
  119. party_name = HandleNullString(partyName),
  120. role_balence = HandleNullString(roleBalence),
  121. };
  122. string roleJson = JsonMapper.ToJson(data);
  123. douYouIosSDKHandler?.SDKRoleInfo(roleJson);
  124. }
  125. // 辅助方法:处理空值
  126. private static string HandleNullString(string value)
  127. {
  128. return string.IsNullOrEmpty(value) ? "" : value;
  129. }
  130. //监听的回调
  131. public class DouYouIosSDKHandler : AbDouYouSDKIosHandler
  132. {
  133. public override void SDKInitWithDigitMap(string gameId, string adId, bool shouldLog)
  134. {
  135. base.SDKInitWithDigitMap(gameId, adId, shouldLog);
  136. Debug.Log($"DouYouIosSDKHandler SDKInitWithDigitMap:gameId:{gameId} adId:{adId} shouldLog:{shouldLog}");
  137. }
  138. //调起登陆
  139. public override void SDKLogin()
  140. {
  141. base.SDKLogin();
  142. Debug.Log($"DouYouIosSDKHandler SDKLogin");
  143. }
  144. //退出登陆
  145. public override void SDKLogout()
  146. {
  147. base.SDKLogout();
  148. Debug.Log($"DouYouIosSDKHandler SDKLogout");
  149. }
  150. //调起支付
  151. public override void SdkPaymentWithJson(string paymentJson)
  152. {
  153. base.SdkPaymentWithJson(paymentJson);
  154. Debug.Log($"DouYouIosSDKHandler SdkPaymentWithJson. paymentJson:{paymentJson}");
  155. }
  156. //角色升级上报
  157. public override void SDKRoleInfo(string roleJson)
  158. {
  159. base.SDKRoleInfo(roleJson);
  160. Debug.Log($"DouYouIosSDKHandler SDKRoleInfo. roleJson:{roleJson}");
  161. }
  162. /// <summary>
  163. /// 初始化成功回调
  164. /// </summary>
  165. /// <param name="message"></param>
  166. public override void InitSuccessAb(string message)
  167. {
  168. UniEvent.SendMessage(new LauncherEvent.InitPlatformResult() { success = true });
  169. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.InitSuccessAb(message);
  170. Debug.Log($"InitSuccessAb:{message}");
  171. }
  172. /// <summary>
  173. /// 初始化失败回调
  174. /// </summary>
  175. /// <param name="message"></param>
  176. public override void InitErrorAb(string message)
  177. {
  178. Debug.Log("InitErrorAb: " + message);
  179. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.InitErrorAb(message);
  180. }
  181. /// <summary>
  182. /// 登录成功回调
  183. /// </summary>
  184. /// <param name="message">登录成功</param>
  185. public override void LoginSuccessAb(string message)
  186. {
  187. Debug.Log("LoginSuccessAb: " + message);
  188. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LoginSuccessAb(message);
  189. }
  190. /// <summary>
  191. /// 登录失败回调
  192. /// </summary>
  193. /// <param name="message"></param>
  194. public override void LoginErrorAb(string message)
  195. {
  196. Debug.Log("LoginErrorAb: " + message);
  197. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LoginErrorAb(message);
  198. }
  199. /// <summary>
  200. /// 切换账号回调
  201. /// </summary>
  202. /// <param name="message"></param>
  203. public override void SwitchAccountsAb(string message)
  204. {
  205. Debug.Log("SwitchAccountsAb" + message);
  206. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.SwitchAccountsAb(message);
  207. }
  208. /// <summary>
  209. /// 登出成功回调
  210. /// </summary>
  211. /// <param name="message"></param>
  212. public override void LogoutSuccessAb(string message)
  213. {
  214. Debug.Log("LogoutSuccessAb" + message);
  215. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LogoutSuccessAb(message);
  216. }
  217. /// <summary>
  218. /// 登出失败回调
  219. /// </summary>
  220. /// <param name="message"></param>
  221. public override void LogoutErrorAb(string message)
  222. {
  223. Debug.Log("LogoutErrorAb" + message);
  224. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LogoutErrorAb(message);
  225. }
  226. /// <summary>
  227. /// 支付成功回调
  228. /// </summary>
  229. /// <param name="message"></param>
  230. public override void PaySuccessAb(string message)
  231. {
  232. Debug.Log("PaySuccessAb" + message);
  233. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.PaySuccessAb(message);
  234. }
  235. /// <summary>
  236. /// 支付失败回调
  237. /// </summary>
  238. /// <param name="message"></param>
  239. public override void PayErrorAb(string message)
  240. {
  241. Debug.Log("PayErrorAb" + message);
  242. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.PayErrorAb(message);
  243. }
  244. /// <summary>
  245. /// 角色升级上报成功回调
  246. /// </summary>
  247. /// <param name="message"></param>
  248. public override void RoleInfoReportSuccessAb(string message)
  249. {
  250. Debug.Log("RoleInfoReportSuccessAb" + message);
  251. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.RoleInfoReportSuccessAb(message);
  252. }
  253. /// <summary>
  254. /// 角色升级上报失败回调
  255. /// </summary>
  256. /// <param name="message"></param>
  257. public override void RoleInfoReportErrorAb(string message)
  258. {
  259. Debug.Log("RoleInfoReportErrorAb" + message);
  260. QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.RoleInfoReportErrorAb(message);
  261. }
  262. }
  263. }
  264. /// <summary>
  265. /// 场景(1 - 进入游戏、2 - 创建角色、3 - 角色升级、4 - 退出、5 - 充值)
  266. /// </summary>
  267. public enum DouYouIosRoleLogReportType
  268. {
  269. /// <summary>
  270. /// 进入游戏
  271. /// </summary>
  272. EnterGame = 1,
  273. /// <summary>
  274. /// 创建角色
  275. /// </summary>
  276. CreateRole = 2,
  277. /// <summary>
  278. /// 角色升级
  279. /// </summary>
  280. LevelUp = 3,
  281. /// <summary>
  282. /// 退出
  283. /// </summary>
  284. ExitGame = 4,
  285. /// <summary>
  286. /// 充值
  287. /// </summary>
  288. Pay = 5
  289. }
  290. }