// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-05-02
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
#if SDK_OHAYOO
using System.Collections;
using System.Collections.Generic;
using ByteDance.Union;
using UnityEngine;
namespace G
{
///
///
///
partial class KPlatform
{
///
/// 平台实现
///
public class OhayooPlatform : MonoBehaviour, IPlatformWapper
{
#region 初始化
private void Start()
{
this.Init();
}
///
/// 游戏SDK初始化,仅Android端
/// Init for Android client ios.
///
public void Init()
{
// 打印当前sdk版本号
Log.D("CurrentSdkVersion : " + LGSDKCore.SDK_VERSION);
#if UNITY_IOS
//在初始化之前绑定AbTest 回调
LGAppLogService.Instance.iOS_SetAbTestFinishCallBack((abTestEnabled, allConfig) =>
{
var allConfigJson = Json.Serialize(allConfig);
Log.D($"allConfigJson --- {allConfigJson}");
Log.D($"iOSAbTestFinishCallBack--- abTestEnable : {abTestEnabled} \n allConfig : {allConfig}");
Debug.Log("AbConfig:" + LGSDKCore.AppLogService.GetAbConfig("key", "defaultValue"));
});
/* 设置 push 回调 */
//LGPushService.Instance.iOS_InitWithCallback(body =>
//{
// var pushId = LGPushService.Instance.Ios_GetPushIdentifier();
// var pushStatus = LGPushService.Instance.Ios_GetSystemPushStatus();
// Log.D($"iOSPushInitSuccess---info:{body.notificationInfo} \n pushId: {pushId} \n pushStatus:{pushStatus} \n pushType:{body.pushType}");
//});
#endif
#if UNITY_ANDROID
// 注册 Android push 回调
//LGSDKPush.PushService.Android_InitPushCallback(
// delegate(NotifyClickCallbackEntity entity)
// {
// // 通知消息点击回调
// var sumMsg = "LG_Push-onNotificationClick : " + "from = " + entity.from + "--title = " + entity.title
// + "--text = " + entity.text + "--imgUrl = " + entity.imgUrl + "--uri = " + entity.openUrl.ToString()
// + " --msgId = " + entity.msgId;
// Log.D(sumMsg);
// ToastManager.Instance.ShowToast(sumMsg);
// LGSDKPush.PushService.Android_StartLaunchActivity();
// },
// delegate(PushArriveCallbackEntity entity)
// {
// // 透传消息到达监听,只有透传消息能回调到此方法
// var sumMsg = "LG_Push-PushMessageArriveCallback : " + "from = " + entity.from + "--title = " + entity.title
// + "--text = " + entity.text + "--imgUrl = " + entity.imgUrl + "--openUrl = " + entity.openUrl
// + "--msgId = " + entity.msgId;
// Log.D(sumMsg);
// ToastManager.Instance.ShowToast(sumMsg);
// });
//LGSDKDevKit.DevKitBaseService.Android_RegisterDeepLinkInnerCallBack(delegate(string message)
//{
// var tips = "收到H5消息" + message;
// Log.D(tips);
// ToastManager.Instance.ShowToast(tips);
//});
//在初始化之前绑定AbTest 回调
LGAppLogService.Instance.Android_registerAbConfigGetListener((bool changed, string abConfig) =>
{
Log.D($"abConfig --- {abConfig}");
Log.D($"AndroidAbTestFinishCallBack--- changed : {changed} \n abConfig : {abConfig}");
Debug.Log("AbConfig:" + LGSDKCore.AppLogService.GetAbConfig("key", "defaultValue"));
});
#endif
LGAbsRealName.GlobalRealNameFailCallback = delegate (int error, string errMsg)
{
// 认证失败 返回错误信息
var resultErrMsg = "RealNameVerified OnFail:" + error + ",errMsg:" + errMsg;
Debug.Log(resultErrMsg);
//ToastManager.Instance.ShowToast(resultErrMsg);
};
LGAbsRealName.GlobalRealNameSuccessCallback = delegate (bool isAdult)
{
// 认证成功 返回用户是否成年
var msg = "RealNameVerified onSuc isAdult:" + isAdult;
Debug.Log(msg);
//ToastManager.Instance.ShowToast(msg);
};
// 全局防沉迷回调
LGAbsRealName.GlobalAntiAddictionCallback = delegate (LGAntiAddictionResult result)
{
var msg = $"TriggerAntiAddiction 是否已经自动弹窗:{result.AutoPopup}" +
$"-- CanPlayTime : {result.CanPlayTime}";
//Log.D(msg);
//ToastManager.Instance.ShowToast(msg);
if (result.AutoPopup)
{
//Debug.Log("防沉迷弹窗已自动弹出,游戏可关闭应用");
ArchiveProxy.Instance.Save();
Application.Quit();
}
};
LGAbsAccount.GlobalLoginSuccessCallback = delegate (LGUser user, LGLoginInvokeMode mode)
{
Debug.Log("OHAYOO 登录成功-");
//ToastManager.Instance.ShowToast("登录成功---openID:" + user.OpenID + "---token:" + user.Token);
//LiteDataUtil.SetOpenId(user.OpenID);
Kunpo.Privacy.PrivacyProxy.LoginUser = user;
KPlatform.Instance.OnLoginSuccess(user.OpenID, user.Token, (int)user.LoginType, (int)mode);
};
LGAbsAccount.GlobalLoginFailCallback = delegate (int code, string msg, LGLoginInvokeMode mode)
{
Debug.Log("OHAYOO 登录失败---code:" + code + "---msg:" + msg + "loginMode:" + mode);
//ToastManager.Instance.ShowToast("登录失败---code:" + code + "---msg:" + msg + "loginMode:" + mode);
KPlatform.Instance.OnLoginFailure(code, msg, (int)mode);
};
LGAbsAccount.GlobalLoginBoxPopCallback = delegate ()
{
Log.D("登录弹窗展示---");
//ToastManager.Instance.ShowToast("登录弹窗展示---");
};
//回调绑定后,启动初始化方法
LGSDKCore.Init(lgInitSuccessInfo =>
{
Log.D("deviceID = " + lgInitSuccessInfo.DeviceID + "--installID = " + lgInitSuccessInfo.InstallID +
"--ssID = " + lgInitSuccessInfo.SsID + "--userUniqueID=" +
lgInitSuccessInfo.UserUniqueID);
//ToastManager.Instance.ShowToast("InitSuccess");
KPlatform.Instance.deviceId = lgInitSuccessInfo.DeviceID;
KPlatform.Instance.OnInitSuccess();
#if UNITY_IOS
RequireIDFA();
#endif
}, (errorCode, errorMessage) =>
{
var toastMsg = $"Init Fail errCode = {errorCode}, errMessage = {errorMessage}";
Log.D(toastMsg);
//ToastManager.Instance.ShowToast(toastMsg);
});
}
#endregion
#region 登录
///
/// 正式用户调用登录接口.
///
public void NormalLogin()
{
LGSDKAccount.AccountService.NormalLogin();
}
///
/// 帐号切换.
///
public void SwitchAccount()
{
LGSDKAccount.AccountService.SwitchAccount();
}
///
/// 游客帐号绑定.
///
public void VisitorBindAccount()
{
LGSDKAccount.AccountService.VisitorBindAccount();
}
///
/// 是否为游客登录.
///
/// 是否为游客登录.
public bool IsVisitor()
{
return LGSDKAccount.AccountService.IsVisitor();
}
public void ClearToken()
{
#if UNITY_IOS
LGSDKAccount.AccountService.ClearToken();
#endif
}
///
///
///
public void Logoff(System.Action onSuccess, System.Action onFail)
{
LGSDKAccount.AccountService.CloseAccount(onSuccess, onFail);
}
#endregion
#region 广告
public static class AndroidAdPositionId
{
public const string REWARD_VIDEO_HORIZONTAL_CODE = "946083313";
public const string REWARD_VIDEO_VERTICAL_CODE = "946083313";// "945930137";//"945722683";//"945651085";//已修改
}
public static class IosAdPositionId
{
public const string REWARD_VIDEO_HORIZONTAL_CODE = "946385677";//"945897453";
public const string REWARD_VIDEO_VERTICAL_CODE = "946385677";//"946371133";//"945978056";//"945897453";
}
string _reward_video_vertical_code;
public void LoadRewardVideoAd_V()
{
if (string.IsNullOrEmpty(_reward_video_vertical_code))
{
_reward_video_vertical_code = AndroidAdPositionId.REWARD_VIDEO_VERTICAL_CODE;
#if UNITY_ANDROID
var appId = Application.identifier;
switch (appId)
{
case "com.kunpo.litaibai.android.ohayoo.vapp"://vapp
_reward_video_vertical_code = "946162814";
break;
case "com.kunpo.litaibai.android.ssjj"://4399
_reward_video_vertical_code = "946510685";
break;
case "com.kunpo.litaibai.android.qqers"://7233
case "com.kunpo.litaibai.android.cczs"://cczs
_reward_video_vertical_code = "946510675";
break;
case "com.kunpo.litaibai.android.uc":
_reward_video_vertical_code = "946608295";
break;
}
#endif
}
this.LoadRewardVideoAd(
LGBaseAdRequestParams.ORIENTATION_VERTICAL,
_reward_video_vertical_code,
IosAdPositionId.REWARD_VIDEO_VERTICAL_CODE);
}
public int ShowRewardAd(string scene)
{
if (this.isLoadingAd)
{
//ToastManager.Instance.ShowToast("广告正在加载中...");
return 1;
}
if (_lgAbsRewardVideoAd == null)
{
//Log.E("请先加载广告");
//ToastManager.Instance.ShowToast("请先加载广告");
return 2;
}
if (string.IsNullOrEmpty(scene))
_lgAbsRewardVideoAd.ShowRewardAd();
else
_lgAbsRewardVideoAd.ShowRewardAd(new LGShowAdParams
{
RitScenesType = LGRitScenesType.CUSTOMIZE_SCENES,
CustomRitScenes = scene,
});
return 0;
}
private LGAbsRewardVideoAd _lgAbsRewardVideoAd;
// 是否正在加载广告
private bool isLoadingAd;
///
/// 加载激励视频广告.
///
///
///
///
///
private void LoadRewardVideoAd(int orientation, string androidAdID, string iosAdId,
bool isExpressAd = false)
{
if (this.isLoadingAd)
{
//ToastManager.Instance.ShowToast("广告正在加载中...");
return;
}
if (this._lgAbsRewardVideoAd != null)
{
//Log.E("广告已经加载");
//ToastManager.Instance.ShowToast("广告已经加载");
return;
}
this._lgAbsRewardVideoAd = LGSDKAd.MediationAdService.CreateRewardVideoAd();
// 加载失败
this._lgAbsRewardVideoAd.OnLoadError = (code, message) =>
{
this.isLoadingAd = false;
//var lastMsg = "OnRewardVideoAdError-- code : " + code + "--message : " + message;
//this.PrintD(lastMsg);
//ToastManager.Instance.ShowToast(lastMsg);
this.ReleaseAdObject();
};
// 广告加载成功,此时调用广告的show为实时播放广告
this._lgAbsRewardVideoAd.OnRewardAdLoaded = delegate
{
this.isLoadingAd = false;
//this.PrintD("OnRewardVideoAdLoad");
//ToastManager.Instance.ShowToast("OnRewardVideoAdLoad");
// 注册广告对象的互动监听
this.RegisterRewardVideoAdInteractionListener();
};
// 广告缓存成功,此时调用广告的show为播放已经下载好的广告
this._lgAbsRewardVideoAd.OnRewardAdCached = delegate
{
this.isLoadingAd = false;
//this.PrintD("OnRewardVideoAdCached");
//ToastManager.Instance.ShowToast("OnRewardVideoAdCached");
};
var rewardVideoAdRequestParams = new LGRewardVideoAdRequestParams();
// 双端广告Id
rewardVideoAdRequestParams.android_AdId = androidAdID;
rewardVideoAdRequestParams.ios_AdId = iosAdId;
// 视频方向
rewardVideoAdRequestParams.videoPlayOrientation = orientation;
// 是否为模板广告
rewardVideoAdRequestParams.isExpressAd = isExpressAd;
rewardVideoAdRequestParams.userID = "user123"; // necessary param .用户id,必传参数
rewardVideoAdRequestParams.rewardName = "金币"; // 奖励的名称
rewardVideoAdRequestParams.rewardAmount = 5; // 奖励的数量
rewardVideoAdRequestParams.mediaExtra = "media_extra"; // 附加参数,可选
this._lgAbsRewardVideoAd.LoadRewardAd(rewardVideoAdRequestParams);
this.isLoadingAd = true;
}
// 注册激励视频广告交互监听
private void RegisterRewardVideoAdInteractionListener()
{
if (this._lgAbsRewardVideoAd == null)
{
//var lastMsg = "RegisterRewardVideoAdInteractionListener Error : _lgAbsRewardVideoAd is null";
//this.PrintD(lastMsg);
//ToastManager.Instance.ShowToast(lastMsg);
return;
}
this._lgAbsRewardVideoAd.OnAdShow_Interaction = OnRewardedAdShow;
this._lgAbsRewardVideoAd.OnAdClose_Interaction = OnRewardedAdClosed;
this._lgAbsRewardVideoAd.OnVideoError_Interaction = OnVideoError;
this._lgAbsRewardVideoAd.OnRewardAdVerify_Interaction = OnRewardVerify;
this._lgAbsRewardVideoAd.OnAdClick_Interaction = OnRewardClick;
#if UNITY_ANDROID
this._lgAbsRewardVideoAd.Android_OnSkippedVideo_Interaction = Android_OnSkippedVideo;
this._lgAbsRewardVideoAd.Android_OnVideoComplete_Interaction = Android_OnVideoComplete;
#endif
}
private void OnRewardedAdShow()
{
KPlatform.Instance.OnRewardedAdShow();
//this.PrintD("onRewardedAdShow");
//ToastManager.Instance.ShowToast("onRewardedAdShow");
}
private void OnRewardClick()
{
//this.PrintD("onRewardClick");
//ToastManager.Instance.ShowToast("onRewardClick");
KPlatform.Instance.OnRewardClick();
}
private void OnRewardedAdClosed()
{
//this.PrintD("onRewardedAdClosed");
//ToastManager.Instance.ShowToast("onRewardedAdClosed");
this.ReleaseAdObject();
KPlatform.Instance.OnRewardedAdClosed();
}
private void OnVideoError()
{
//this.PrintD("onVideoError");
//ToastManager.Instance.ShowToast("onVideoError");
KPlatform.Instance.OnVideoError();
}
private void OnRewardVerify(bool rewardVerify, float rewardAmount, string rewardName)
{
//var msg = "OnRewardVerify : rewardVerify = " + rewardVerify + "--rewardAmount = " + rewardAmount +
// "--rewardName = " + rewardName;
//this.PrintD(msg);
//ToastManager.Instance.ShowToast(msg);
KPlatform.Instance.OnRewardVerify(rewardVerify, rewardAmount, rewardName);
}
#if UNITY_ANDROID
private void Android_OnVideoComplete()
{
//this.PrintD("onVideoComplete");
//ToastManager.Instance.ShowToast("onVideoComplete");
KPlatform.Instance.OnVideoComplete();
}
private void Android_OnSkippedVideo()
{
//this.PrintD("onSkippedVideo");
//ToastManager.Instance.ShowToast("onSkippedVideo");
KPlatform.Instance.OnSkippedVideo();
}
#endif
// 释放广告对象
public void ReleaseAdObject()
{
if (this._lgAbsRewardVideoAd != null)
{
this._lgAbsRewardVideoAd.Dispose();
this._lgAbsRewardVideoAd = null;
}
}
private void PrintD(string msg)
{
//Log.D(AdFunctionScript.LG_MediationAdTAG + msg);
}
private void PrintE(string msg)
{
//Log.E(AdFunctionScript.LG_MediationAdTAG + msg);
}
#endregion
#region 兑换码
//输入的兑换码
public string Input_redeem_code { get; set; }
public void Redeem(string redeemCode)
{
Input_redeem_code = redeemCode;
ConfirmRedeemCode();
//Redeem();
}
// 查询兑换码
public void InquireRedeemCode()
{
string redeemCode = this.Input_redeem_code;
LGAbsRedemtion.OnInquireSuccess = (json) =>
{
var msg = "OnRedemptionInquireSuc-- 兑换码详情json : " + json;
Debug.Log(msg);
//ToastManager.Instance.ShowToast(msg);
// demo展示这里忽略道具展示页面,直接使用兑换码
this.ConfirmRedeemCode();
};
LGAbsRedemtion.OnInquireFail = KPlatform.Instance.OnRedeemError;
//(code, message) =>
//{
// var msg = "OnRedemptionInquireError-- code : " + code + "--message : " + message;
// Debug.Log(msg);
// //ToastManager.Instance.ShowToast(msg);
//};
Debug.Log("Redeem 被调用" + "code:" + redeemCode);
LGSDKAccount.RedemptionService.InquireRedeemCode(redeemCode);
}
/**
* 使用兑换码
* demo展示这里忽略道具展示页面,直接使用兑换码
* cp是展示道具,点击兑换,调用confirm接口,标记兑换码使用了
* 在成功的回调里面发放兑换码奖励
*/
private void ConfirmRedeemCode()
{
string redeemCode = this.Input_redeem_code;
LGAbsRedemtion.OnConfirmRedeemSuccess = KPlatform.Instance.OnRedeemSuccess;
// (result) =>
//{
// var msg = "OnRedemptionConfirmSuc-- result : " + result;
// Debug.Log(msg);
// //ToastManager.Instance.ShowToast(msg);
//};
LGAbsRedemtion.OnConfirmRedeemFail = KPlatform.Instance.OnRedeemError;
//(code, message) =>
//{
// var msg = "OnRedemptionConfirmError-- code : " + code + "--message : " + message;
// Debug.Log(msg);
// //ToastManager.Instance.ShowToast(msg);
//};
LGSDKAccount.RedemptionService.ConfirmRedeemCode(redeemCode);
}
#endregion
#region AB Test
///
/// 获取AB测试的配置
/// Gets the ab config.
///
/// The ab config.
/// Key.
/// Default value.
/// The 1st type parameter 类型,需是JSON兼容的数据类型.
public string GetAbConfig(string key, string defaultValue)
{
return LGSDKCore.AppLogService.GetAbConfig(key, defaultValue);
}
#endregion
#region 邮件
///
/// 获取邮件.
///
public void FetchMail()
{
LGAbsMail.OnFetchSuccess = OnMailFetchSuc;
LGAbsMail.OnFetchFail = OnMailFetchFail;
LGSDKAccount.MailService.FetchMail();
}
public void OnMailFetchSuc(string mailsJson)
{
// 打开邮件页面
var gp = new GamePacket();
gp.data = mailsJson;
gp.id = 100;
gp.error = 0;
GlobalNotifier.PostNotification(GlobalDefine.EVENT_NETWORK_PACKET, gp, "sdk");
}
public void OnMailFetchFail(int code, string msg)
{
var gp = new GamePacket();
gp.data = msg;
gp.id = 100;
gp.error = code;
GlobalNotifier.PostNotification(GlobalDefine.EVENT_NETWORK_PACKET, gp, "sdk");
//ToastManager.Instance.ShowToast("MailFetchCallBack OnFail : code = " + code + "--msg = " + msg);
}
///
/// 确认邮件.
///
/// 需要确认的邮件id.
public void AckMail(int[] mailIds)
{
_mailIds = mailIds;
LGAbsMail.OnAckSuccess = OnMailAckSuc;
LGAbsMail.OnAckFail = OnMailAckFail;
LGSDKAccount.MailService.AckMail(mailIds);
}
int[] _mailIds;
void OnMailAckSuc()
{
var gp = new GamePacket();
gp.data = _mailIds;
gp.id = 101;
gp.error = 0;
GlobalNotifier.PostNotification(GlobalDefine.EVENT_NETWORK_PACKET, gp, "sdk");
}
public void OnMailAckFail(int code, string msg)
{
var gp = new GamePacket();
gp.data = msg;
gp.id = 101;
gp.error = code;
GlobalNotifier.PostNotification(GlobalDefine.EVENT_NETWORK_PACKET, gp, "sdk");
var resultMsg = "领取邮件失败:code=" + code + ",msg=" + msg;
Log.E(resultMsg);
}
#endregion
#region 支付
#if ENABLE_PAY
// 输入的总金额
public string Total_amount { get; set; }
private void GoPay()
{
LGOrderInfoForPay orderInfo = null;
#if UNITY_ANDROID
orderInfo = GetAndroidOrderInfo();
#endif
#if UNITY_IOS
orderInfo = GetiOSOrderInfo();
#endif
LGAbsPay.PayResultCallback = PayResultCallback;
LGSDKPay.PayService.Pay(LGPayService.Instance.GenerateOrderInfo(orderInfo));
}
///
/// 生成iOS 订单信息
///
///
private LGOrderInfoForPay GetiOSOrderInfo()
{
LGOrderInfoForPay orderInfo = new LGOrderInfoForPay();
// 订单号 必填参数
string current_time = "";// TimeUtil.GetTimeStamp();
string order_no = "订单号abc" + current_time;
Debug.Log("order_no---" + order_no);
orderInfo.order_no = order_no;
// 订单名称 必填参数
orderInfo.subject = "LightGameSDKDemo";
// 注意 这里需要传入SDK接入方自己获取的openID
//orderInfo.open_id = LiteDataUtil.GetOpenId();
//ToastManager.Instance.ShowToast("openID ==" + orderInfo.open_id);
Log.D("Open Id = " + orderInfo.open_id);
// total_amount 订单金额 必须大于0 必填参数, 单位为分
string total_amount = "4500";
orderInfo.total_amount = total_amount;
Log.D("支付金额大小为---" + total_amount);
// notyfy_url 游戏服务端异步回调地址 非空有效的公网地址 必填参数
string notify_url = "https://tt.test";
orderInfo.notify_url = notify_url;
// product_id 为商品编号非空字段
string product_id = "com.lightgame.45";
orderInfo.product_id = product_id;
// 订单详情 非必填参数 但是生成签名时候不能丢掉该字段 建议如果为空 传递空串 如下:
string body = "LightGameSDKDemo";
orderInfo.body = body;
// trade_time 订单创建时间 unix timestamp
long trade_time;
long.TryParse(current_time, out trade_time);
Log.D("trade_time---" + trade_time);
orderInfo.trade_time = trade_time;
// 订单有效期,单位为秒 >=0 && <= 3600,小于600时sdk服务端将使用600
int valid_time = 600;
orderInfo.valid_time = valid_time;
// 自定义回调信息 但是生成签名时候不能丢掉该字段 建议如果为空 传递空串 如下:
string custom_callback_info = "";
orderInfo.custom_callback_info = custom_callback_info;
// 签名类型 目前只支持MD5
string sign_type = "MD5";
orderInfo.sign_type = sign_type;
return orderInfo;
}
///
/// 生成 Android 订单信息
///
///
private LGOrderInfoForPay GetAndroidOrderInfo()
{
LGOrderInfoForPay orderInfo = new LGOrderInfoForPay();
// 订单号 必填参数
string current_time = "";// TimeUtil.GetTimeStamp();
string order_no = "订单号abc" + current_time;
Debug.Log("order_no---" + order_no);
orderInfo.order_no = order_no;
// 订单名称 必填参数
orderInfo.subject = "测试商品C919";
// 注意 这里需要传入SDK接入方自己获取的openID
//orderInfo.open_id = LiteDataUtil.GetOpenId();
//ToastManager.Instance.ShowToast("openID ==" + orderInfo.open_id);
Log.D("Open Id = " + orderInfo.open_id);
// total_amount 订单金额 必须大于0 必填参数
Debug.Log("支付金额大小为---" + this.Total_amount);
string total_amount = this.Total_amount;
orderInfo.total_amount = total_amount;
// notyfy_url 游戏服务端异步回调地址 非空有效的公网地址 必填参数
string notify_url = "https://tt.test";
orderInfo.notify_url = notify_url;
// product_id 为商品编号非空字段
string product_id = "product_01";
orderInfo.product_id = product_id;
// 订单详情 非必填参数 但是生成签名时候不能丢掉该字段 建议如果为空 传递空串 如下:
string body = "";
orderInfo.body = body;
// trade_time 订单创建时间 unix timestamp
long trade_time;
long.TryParse(current_time, out trade_time);
Debug.Log("trade_time---" + trade_time);
orderInfo.trade_time = trade_time;
// 订单有效期,单位为秒 >=0 && <= 3600,小于600时sdk服务端将使用600
int valid_time = 600;
orderInfo.valid_time = valid_time;
// 自定义回调信息 但是生成签名时候不能丢掉该字段 建议如果为空 传递空串 如下:
string custom_callback_info = "";
orderInfo.custom_callback_info = custom_callback_info;
// 签名类型 目前只支持MD5
string sign_type = "MD5";
orderInfo.sign_type = sign_type;
return orderInfo;
}
// 支付回调
private void PayResultCallback(int code, string msg)
{
Debug.Log("example pay onPayResult:" + code + ",errMsg:" + msg);
//ToastManager.Instance.ShowToast("code = " + code + " || msg =" + msg);
}
// 查询是否支持支付
private void QueryPaySupport()
{
// total_amount 订单金额 必须大于0 必填参数
Debug.Log("查询支付金额大小为---" + this.Total_amount);
var total_amount = this.Total_amount;
var total = 0L;
long.TryParse(total_amount, out total);
// if (total <= 0)
// {
// ToastManager.Instance.ShowToast("订单金额 必须大于0");
// return;
// }
LGAbsPay.QueryPaySupportCallback = QueryPayCallback;
LGSDKPay.PayService.QueryPaySupport(total);
}
// 是否支持支付回调
private void QueryPayCallback(bool canPay, int code, string msg)
{
//ToastManager.Instance.ShowToast(canPay
// ? "canPay 1"
// : "Pay-code-" + code + "-message-" + msg);
//Debug.Log("example query queryResult:" + code + ",errMsg:" + msg + ", canPay:" + canPay);
}
#endif
#endregion
#region 其它
///
/// 应用内引导评分
///
public void InAppRating()
{
#if UNITY_IOS
LGSDKDevKit.DevKitBaseService.iOS_InAppRating();
#endif
}
///
/// 验证敏感词.
///
/// 输入的敏感词信息.
/// 返回的敏感词结果.
public void VerifySensitiveWords(string sensitiveWords, System.Action verifyResult)
{
LGSDKDevKit.DevKitBaseService.VerifySensitiveWords(sensitiveWords, (result) =>
{
verifyResult?.Invoke(result == SensitiveWordsEnum.REJIECT ? 1 : 0);
});
}
///
/// 播放品牌特效.
///
/// 游戏是否竖屏,竖屏游戏填true,横屏游戏填false.
/// 品牌特效完成回调.
public void PlaySplashBrandEffect(bool portrait, System.Action splashBrandEffectAction)
{
//LightGameSDK.PlaySplashBrandEffect(portrait, splashBrandEffectAction);
}
///
///
///
///
///
public void SetEventCommonHeader(string key, string value)
{
LGSDKCore.AppLogService.SetCommonHeader(key, value);
}
///
/// 上报v3事件。
/// Ons the event v3.
///
/// Label. 事件名,应用内需唯一 .
/// Parameter. 事件参数 json .
public void ReportEvent(string label, string paramJson)
{
LGSDKCore.AppLogService.OnEventV3(label, paramJson);
}
///
/// 获取 IDFA 权限
///
public static void RequireIDFA()
{
bool flag = false;
var osText = SystemInfo.operatingSystem;
for (int i = 0; i < osText.Length; i++)
{
if (char.IsDigit(osText[i]))
{
var osVersionText = osText.Substring(i);
if (System.Version.TryParse(osVersionText, out var osVersion))
{
if (osVersion < new System.Version(14, 5))
{
flag = true;
}
Debug.Log(osVersionText);
}
break;
}
}
/// 获取 IDFA 权限
if (!flag)
{
#if UNITY_IOS
LGSDKAd.MediationAdService.iOS_RequireIDFA(delegate (bool hasAuthorized, string idfaString)
{
//var msg = $"是否有权限 : {hasAuthorized} \n idfaString : {idfaString}";
//ToastManager.Instance.ShowToast(msg);
});
#endif
}
}
///
/// openwebview
///
///
public void OpenWebView(string url)
{
#if UNITY_ANDROID
LGSDKDevKit.DevKitBaseService.Android_RegisterDeepLinkInnerCallBack(delegate (string message)
{
//var tips = "收到H5消息" + message;
//Log.D(tips);
//ToastManager.Instance.ShowToast(tips);
});
LGSDKDevKit.DevKitBaseService.Android_StartBrowser(url);
#else
Application.OpenURL(url);
#endif
}
///
///
///
public void OpenUserProtocol()
{
LGSDKDevKit.DevKitBaseService.OpenUserProtocol();
}
///
///
///
public void OpenPrivacyProtocol()
{
LGSDKDevKit.DevKitBaseService.OpenPrivacyProtocol();
}
///
///
///
public void OpenIdentifyProtocol()
{
LGSDKDevKit.DevKitBaseService.OpenIdentifyProtocol();
}
public string appId { get; }
#endregion
}
}
}
#endif