using DouYouSdk; using LitJson; using UniFramework.Event; using UnityEngine; namespace GFGGame.Launcher { public class QDDouYouManagerInitIos : SingletonBase { public IDouYouSDKListenerIos douYouSDKListenerIos; public DouYouIosSDKHandler douYouIosSDKHandler; public void InitSDK(string gameId, string adId, bool showLog) { if (douYouIosSDKHandler == null) { GameObject gameObject = new GameObject("IosReceiverGameObj"); gameObject.AddComponent(); GameObject.DontDestroyOnLoad(gameObject); douYouIosSDKHandler = GameObject.Find("IosReceiverGameObj")?.GetComponent(); } Instance.InitWithDigitMap(gameId, adId, showLog); } /// /// 实例化sdk /// /// /// /// public void InitWithDigitMap(string gameId, string adId, bool shouldLog) { douYouIosSDKHandler?.SDKInitWithDigitMap(gameId, adId, shouldLog); } /// /// 显示登录 /// public void ShowLogin() { douYouIosSDKHandler?.SDKLogin(); } /// /// 退出登录 /// public void Logout() { douYouIosSDKHandler?.SDKLogout(); } /// /// 显示支付 /// /// 订单号 /// 订单金额(元) /// 产品ID /// 产品名称 /// 商品描述 /// 购买数量 /// 比例(默认 - 1) /// 金币 /// 区服ID /// 区服名称 /// 角色ID /// 角色名称 /// 角色等级 /// 角色VIP /// 工会名称 /// 游戏币 /// 透传参数 public void ShowPay(string cpOrderId, string productPrice, string productId, string productName, string productDesc, string productCount, string exchangeRate, string currencyName, string serverId, string serverName, string roleId, string roleName, string roleLevel, string roleVip, string partyName, string roleBalence, string ext) { var data = new { cp_order_id = HandleNullString(cpOrderId), product_price = HandleNullString(productPrice), product_id = HandleNullString(productId), product_name = HandleNullString(productName), product_desc = HandleNullString(productDesc), product_count = HandleNullString(productCount), exchange_rate = HandleNullString(exchangeRate), currency_name = HandleNullString(currencyName), server_id = HandleNullString(serverId), server_name = HandleNullString(serverName), role_id = HandleNullString(roleId), role_name = HandleNullString(roleName), role_level = HandleNullString(roleLevel), role_vip = HandleNullString(roleVip), party_name = HandleNullString(partyName), role_balance = HandleNullString(roleBalence), ext = HandleNullString(ext) }; string paymentJson = JsonMapper.ToJson(data); douYouIosSDKHandler?.SdkPaymentWithJson(paymentJson); } /// /// 上报角色信息 /// /// 数据类型(1 - 进入游戏、2 - 创建角色、3 - 角色升级、4 - 退出、5 - 充值) /// 区服ID /// 区服名称 /// 角色ID /// 角色名称 /// 角色等级 /// 角色VIP /// 工会名称 /// 游戏币 public void ReportRoleInfo(string type, string serverId, string serverName, string roleId, string roleName, string roleLevel, string roleVip, string partyName, string roleBalence) { var data = new { type = HandleNullString(type), server_id = HandleNullString(serverId), server_name = HandleNullString(serverName), role_id = HandleNullString(roleId), role_name = HandleNullString(roleName), role_level = HandleNullString(roleLevel), role_vip = HandleNullString(roleVip), party_name = HandleNullString(partyName), role_balence = HandleNullString(roleBalence), }; string roleJson = JsonMapper.ToJson(data); douYouIosSDKHandler?.SDKRoleInfo(roleJson); } // 辅助方法:处理空值 private static string HandleNullString(string value) { return string.IsNullOrEmpty(value) ? "" : value; } //监听的回调 public class DouYouIosSDKHandler : AbDouYouSDKIosHandler { public override void SDKInitWithDigitMap(string gameId, string adId, bool shouldLog) { base.SDKInitWithDigitMap(gameId, adId, shouldLog); Debug.Log($"DouYouIosSDKHandler SDKInitWithDigitMap:gameId:{gameId} adId:{adId} shouldLog:{shouldLog}"); } //调起登陆 public override void SDKLogin() { base.SDKLogin(); Debug.Log($"DouYouIosSDKHandler SDKLogin"); } //退出登陆 public override void SDKLogout() { base.SDKLogout(); Debug.Log($"DouYouIosSDKHandler SDKLogout"); } //调起支付 public override void SdkPaymentWithJson(string paymentJson) { base.SdkPaymentWithJson(paymentJson); Debug.Log($"DouYouIosSDKHandler SdkPaymentWithJson. paymentJson:{paymentJson}"); } //角色升级上报 public override void SDKRoleInfo(string roleJson) { base.SDKRoleInfo(roleJson); Debug.Log($"DouYouIosSDKHandler SDKRoleInfo. roleJson:{roleJson}"); } /// /// 初始化成功回调 /// /// public override void InitSuccessAb(string message) { UniEvent.SendMessage(new LauncherEvent.InitPlatformResult() { success = true }); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.InitSuccessAb(message); Debug.Log($"InitSuccessAb:{message}"); } /// /// 初始化失败回调 /// /// public override void InitErrorAb(string message) { Debug.Log("InitErrorAb: " + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.InitErrorAb(message); } /// /// 登录成功回调 /// /// 登录成功 public override void LoginSuccessAb(string message) { Debug.Log("LoginSuccessAb: " + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LoginSuccessAb(message); } /// /// 登录失败回调 /// /// public override void LoginErrorAb(string message) { Debug.Log("LoginErrorAb: " + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LoginErrorAb(message); } /// /// 切换账号回调 /// /// public override void SwitchAccountsAb(string message) { Debug.Log("SwitchAccountsAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.SwitchAccountsAb(message); } /// /// 登出成功回调 /// /// public override void LogoutSuccessAb(string message) { Debug.Log("LogoutSuccessAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LogoutSuccessAb(message); } /// /// 登出失败回调 /// /// public override void LogoutErrorAb(string message) { Debug.Log("LogoutErrorAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.LogoutErrorAb(message); } /// /// 支付成功回调 /// /// public override void PaySuccessAb(string message) { Debug.Log("PaySuccessAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.PaySuccessAb(message); } /// /// 支付失败回调 /// /// public override void PayErrorAb(string message) { Debug.Log("PayErrorAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.PayErrorAb(message); } /// /// 角色升级上报成功回调 /// /// public override void RoleInfoReportSuccessAb(string message) { Debug.Log("RoleInfoReportSuccessAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.RoleInfoReportSuccessAb(message); } /// /// 角色升级上报失败回调 /// /// public override void RoleInfoReportErrorAb(string message) { Debug.Log("RoleInfoReportErrorAb" + message); QDDouYouManagerInitIos.Instance.douYouSDKListenerIos?.RoleInfoReportErrorAb(message); } } } /// /// 场景(1 - 进入游戏、2 - 创建角色、3 - 角色升级、4 - 退出、5 - 充值) /// public enum DouYouIosRoleLogReportType { /// /// 进入游戏 /// EnterGame = 1, /// /// 创建角色 /// CreateRole = 2, /// /// 角色升级 /// LevelUp = 3, /// /// 退出 /// ExitGame = 4, /// /// 充值 /// Pay = 5 } }