// // YLToolsManager.h // YLToolsSDK // // Created by Long on 2020/3/5. // Copyright © 2020 com.youloft. All rights reserved. // #import #import "YLDataReportInfo.h" NS_ASSUME_NONNULL_BEGIN //方法名称全局定义 static NSString *Mn_GetActivitiesWithChannel = @"GetActivitiesWithChannel"; static NSString *Mn_GameAnoncementsWithChannel = @"GameAnoncementsWithChannel"; ///渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析 static NSString *Mn_ChannelPayOrder = @"ChannelpayOrder"; static NSString *Mn_Channelpay4399notify = @"C​hannelpay4399notify"; static NSString *Mn_Channelpayopponotify = @"Channelpayopponotify"; ///获取最新版本信息 static NSString *Mn_ChannelpayGetAppVersion = @"ChannelpayGetAppVersion"; ///获取服务器配置 static NSString *Mn_configSync = @"ConfigSync"; ///获取服务器信息,返回结果有加密 static NSString *Mn_ConfigServerinfo = @"Serverinfo"; ///兑换码兑换接口 static NSString *Mn_dedeemConsume = @"DedeemConsume"; ///根据渠道兑换码兑换接口 static NSString *Mn_redeemConsume = @"RedeemConsume"; ///根据渠道和用户兑换码兑换接口 static NSString *Mn_redeemUserConsume = @"RedeemUserConsume"; ///用户反馈接口 static NSString *Mn_feedbackSubmit = @"FeedbackSubmit"; ///登录接口 微信/游客 static NSString *Mn_userLogin = @"UserLogin"; ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密 static NSString *Mn_userSync = @"UserSync"; ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断 static NSString *Mn_userSyncStream = @"UserSyncStream"; ///心跳检测 static NSString *Mn_userHeartbeat = @"UserHeartbeat"; ///用户下订接口 static NSString *Mn_userOrder = @"UserOrder"; ///恢复购买 static NSString *Mn_userResumePurchase = @"UserResumePurchase"; ///订单消耗 static NSString *Mn_userConsume = @"UserConsume"; ///查询单个订单的状态 用来处理非消耗性商品 static NSString *Mn_userQueryOrder = @"UserQueryOrder"; ///获取排行榜 用户信息 static NSString *Mn_userLeaderboard = @"UserLeaderboard"; ///提交用户分数 返回用户排行榜信息,返回结果无加密 static NSString *Mn_userUploadScore = @"UserUploadScore"; ///获取用户自己的排名 static NSString *Mn_userGetUserRank = @"UserGetUserRank"; ///当用户登录信息失效时调用的方法名称 static NSString *Mn_loginStatus = @"LoginStatus"; ///当用户登录信息失效时调用的方法名称 static NSString *Mn_payrecordSubmit = @"PayrecordSubmit"; ///苹果支付票据服务器验证 static NSString *Mn_overseaPayAppleValidate = @"OverseaPayAppleValidate"; ///苹果支付票据服务器验证 static NSString *Mn_overseaPayUserAppleValidate = @"UserAppleValidate"; ///查询用户状态 static NSString *Mn_loginQueryUserState = @"LoginQueryUserState"; ///提交游戏关键数据 一次判定游戏是否作弊,是否封号 结果无加密 static NSString *Mn_gamekeyinfoUpload = @"GamekeyinfoUpload"; ///获取单个游戏所有后台配置的商品列表 static NSString *Mn_getGoodsList = @"GetGoodsList"; ///获取单个游戏所有后台配置的商品列表 static NSString *Mn_dataReport = @"DataReport"; ///反馈透传接口 static NSString *Mn_addExtraData = @"AddExtraData"; ///反馈透传接口 static NSString *Mn_checkParameter = @"CheckParameter"; @protocol YLApisManagerDelegate @optional -(void)requestSucessedWithMethodName:(NSString *)methodName jsonStr:(NSString *)jsonStr; -(void)requestFailWithMethodName:(NSString *)methodName errorStr:(NSString *)errorStr; -(void)webviewDidOpen; -(void)webviewDidClose; -(void)webviewPaySucessedWithOrderID:(NSString *)orderId; -(void)webviewPayFailWithErrorMsg:(NSString *)errorMsg; @end typedef void(^ApiCallBackBlock)(int stateCode, NSString *methodName, NSString * __nullable jsonStr, NSError * __nullable error); @interface YLApisManager : NSObject @property (nonatomic,copy) NSString *gameID; @property (nonatomic,copy) NSString *userID; /// 回调协议 @property (nonatomic, weak) id delegate; /// 内部使用回调,避免将外部协议抢了 @property (nonatomic, copy) ApiCallBackBlock apiCallBackBlock; + (instancetype)sharedManager; /// 初始化SDK -建议使用该方法初始化 /// @param gameID 游戏ID /// @param signStr 对应的密钥 /// @param isDebug 是否是测试环境,NO是正式环境,YES是测试环境 -(void)initSDKWithGameID:(NSString *)gameID signStr:(NSString *)signStr isDebug:(BOOL)isDebug; /// 初始化SDK /// @param gameID 游戏ID /// @param signStr 对应的密钥 /// @param baseUrl 环境地址,当为空时,会使用默认的正式环境 -(void)initSDKWithGameID:(NSString *)gameID signStr:(NSString *)signStr baseUrl:(NSString *)baseUrl; -(void)configAFConversionDataWithadInfo:(YLAdInfo *)adInfo; -(NSString *)getUserId; //用于后台查看检查游戏参数设置是否正确 -(void)checkGameParamWithFbID:(NSString *)fbId admobId:(NSString *)admobId adIds:(NSString *)adIds umengId:(NSString *)umengId; /// 获取活动列表 /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识 /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文 -(void)getActivitiesWithChannel:(NSString *)channel language:(NSString *)language; /// 获取广告列表 /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识 /// @param version 适用的版本 /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文 -(void)getGameAnoncementsWithChannel:(NSString *)channel version:(NSString *)version language:(NSString *)language; /// 渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析 /// @param channel 渠道名称 /// @param goodsId 商品ID -(void)channelPayOrderWithChannel:(NSString *)channel goodsId:(NSString *)goodsId; /// 获取当前游戏,渠道的最新版本 返回结果无加密 /// @param channel 渠道名称 -(void)channelpayGetAppVersionWithChannel:(NSNumber *)channel; /// 获取服务器配置 /// @param appVer 应用的版本号,如果不需要根据版本判断可以串0 /// @param lastVer 上一次上传的配置版本,每次全新获取传0 -(void)configSyncWithAppVer:(NSString *)appVer lastVer:(NSNumber *)lastVer; /// 获取服务信息 -(void)configServerinfo; /// 兑换码兑换接口 /// @param redeemCode 兑换码 -(void)dedeemConsumeWithRedeemCode:(NSString *)redeemCode; /// 根据渠道兑换码兑换接口 /// @param redeemCode 兑换码 /// @param channel 渠道标识 0:官方包 3:vivo 4:oppo 5:huawei 6:4399 7:应用宝 8:xiaomi 或其他在后台渠道管理页面定义的标识 -(void)redeemConsumeWithRedeemCode:(NSString *)redeemCode channel:(NSString *)channel; /// 根据渠道和用户兑换码兑换接口 /// @param redeemCode 兑换码 /// @param channel 渠道标识 0:官方包 3:vivo 4:oppo 5:huawei 6:4399 7:应用宝 8:xiaomi 或其他在后台渠道管理页面定义的标识 /// @param clientId 用户ID,使用api登录时传入对应UserID,使用其他系统登录则传入对应用户唯一标识 -(void)redeemUserConsumeWithRedeemCode:(NSString *)redeemCode channel:(NSString *)channel clientId:(NSString *)clientId ; /// 用户提交反馈 /// @param msg 反馈详情 /// @param contact 联系方式 /// @param documentinfo 存档字符串 -(void)feedbackSubmitWithAppVer:(NSString *)appVer Msg:(NSString *)msg contact:(NSString *)contact documentinfo:(NSString *)documentinfo; /// 登录接口微信-游客 登录之后返回token,每次操作验证token 请求需要签名,返回数据无加密 /// @param markId 用户ID /// @param type 用户类型 /// @param name 用户名称 /// @param icon 用户头像的链接地址 -(void)userLoginWithMarkId:(NSString *)markId type:(NSNumber *)type name:(NSString *)name iconurlStr:(NSString *)icon; /// 获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密 /// archive为空字符串则为获取最新服务器存档;archive不为空,archiveVersion不为空则是提交存档 /// @param archive 存档数据字符串 /// @param archiveVersion 存档版本 -(void)userSyncWithArchive:(NSString *)archive archiveVersion:(NSNumber *)archiveVersion; /// 获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密 -(void)userSyncStream; ///心跳检测,判断当前客户端登陆是否有效 请求需要签名,返回数据无加密 -(void)userHeartbeat; /// 用户下订接口,下单成功之后返回支付链接 -跳转支付页面 /// @param goodsId 商品ID -(void)userOrderWithGoodsId:(NSString *)goodsId; ///恢复购买,查看已完成的所有订单,以及消耗状态 请求需要签名,返回结果有加密 -(void)userResumePurchase; /// 订单消耗 请求需要签名,返回结果有加密 /// @param goodsId 商品ID /// @param orderId 订单号 -(void)userConsumeWithGoodsId:(NSString *)goodsId orderId:(NSString *)orderId; /// 查询单个订单的状态 用来处理非消耗性商品,判断订单是否支付完成 返回结果有加密 Orderstatus - 0 未购买 1 已购买 未消耗 2 已购买 已消耗 /// @param goodsId 商品ID /// @param orderId 订单ID -(void)userQueryOrderWithGoodsId:(NSString *)goodsId orderId:(NSString *)orderId; ///获取排行榜 用户信息 -(void)userLeaderboard; /// 提交用户分数 返回用户排行榜信息,返回结果无加密 /// @param score 分数 /// @param info 信息数据 /// @param rankingId 排行榜ID -(void)userUploadScoreWithScore:(NSNumber *)score info:(NSString *)info rankingId:(NSString *)rankingId; /// 获取用户自己的排名 /// @param rankingId 排行榜ID -(void)userGetUserRankWithRankingId:(NSString *)rankingId; /// 上报付费 -(void)payrecordSubmit; /// 苹果票据验证 /// @param receipt 票据 /// @param appleorderid 苹果订单ID /// @param sku 商品类型 /// @param skuType 类型 内购或订阅 /// @param price 价格 /// @param actid 活动ID -(void)overseaPayAppleValidateWithReceipt:(NSString *)receipt appleOrderId:(NSString *)appleorderid sku:(NSString *)sku skuType:(NSString *)skuType price:(NSString *)price actId:(nullable NSString *)actid; /// 苹果票据验证 /// @param receipt 票据 /// @param appleorderid 苹果订单ID /// @param sku 商品类型 /// @param skuType 类型 内购或订阅 /// @param actid 活动ID -(void)overseaPayUserAppleValidateWithReceipt:(NSString *)receipt appleOrderId:(NSString *)appleorderid sku:(NSString *)sku skuType:(NSString *)skuType actId:(nullable NSString *)actid; /// 提交用户关键信息,校验是否作弊 /// @param infoJson 用户信息 -(void)gamekeyinfoUploadWithInfoJson:(NSString *)infoJson; -(void)dataReportWithEventName:(NSString *)eventName eventValue:(NSString *)eventValue remark:(NSString *)remark labels:(nullable NSDictionary *)labelsDic; -(void)dataReportWithEventsArray:(NSArray *)eventsArray; -(void)getAllGoods; -(void)addExtraData:(NSString *)dataStr; @end NS_ASSUME_NONNULL_END