| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | ////  YLToolsManager.h//  YLToolsSDK////  Created by Long on 2020/3/5.//  Copyright © 2020 com.youloft. All rights reserved.//#import <Foundation/Foundation.h>#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 = @"Channelpay4399notify";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 <NSObject>@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;@endtypedef 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<YLApisManagerDelegate> 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;@endNS_ASSUME_NONNULL_END
 |