YLApisManager.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. //
  2. // YLToolsManager.h
  3. // YLToolsSDK
  4. //
  5. // Created by Long on 2020/3/5.
  6. // Copyright © 2020 com.youloft. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "YLDataReportInfo.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. //方法名称全局定义
  12. static NSString *Mn_GetActivitiesWithChannel = @"GetActivitiesWithChannel";
  13. static NSString *Mn_GameAnoncementsWithChannel = @"GameAnoncementsWithChannel";
  14. ///渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析
  15. static NSString *Mn_ChannelPayOrder = @"ChannelpayOrder";
  16. static NSString *Mn_Channelpay4399notify = @"C​hannelpay4399notify";
  17. static NSString *Mn_Channelpayopponotify = @"Channelpayopponotify";
  18. ///获取最新版本信息
  19. static NSString *Mn_ChannelpayGetAppVersion = @"ChannelpayGetAppVersion";
  20. ///获取服务器配置
  21. static NSString *Mn_configSync = @"ConfigSync";
  22. ///获取服务器信息,返回结果有加密
  23. static NSString *Mn_ConfigServerinfo = @"Serverinfo";
  24. ///兑换码兑换接口
  25. static NSString *Mn_dedeemConsume = @"DedeemConsume";
  26. ///根据渠道兑换码兑换接口
  27. static NSString *Mn_redeemConsume = @"RedeemConsume";
  28. ///根据渠道和用户兑换码兑换接口
  29. static NSString *Mn_redeemUserConsume = @"RedeemUserConsume";
  30. ///用户反馈接口
  31. static NSString *Mn_feedbackSubmit = @"FeedbackSubmit";
  32. ///登录接口 微信/游客
  33. static NSString *Mn_userLogin = @"UserLogin";
  34. ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
  35. static NSString *Mn_userSync = @"UserSync";
  36. ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断
  37. static NSString *Mn_userSyncStream = @"UserSyncStream";
  38. ///心跳检测
  39. static NSString *Mn_userHeartbeat = @"UserHeartbeat";
  40. ///用户下订接口
  41. static NSString *Mn_userOrder = @"UserOrder";
  42. ///恢复购买
  43. static NSString *Mn_userResumePurchase = @"UserResumePurchase";
  44. ///订单消耗
  45. static NSString *Mn_userConsume = @"UserConsume";
  46. ///查询单个订单的状态 用来处理非消耗性商品
  47. static NSString *Mn_userQueryOrder = @"UserQueryOrder";
  48. ///获取排行榜 用户信息
  49. static NSString *Mn_userLeaderboard = @"UserLeaderboard";
  50. ///提交用户分数 返回用户排行榜信息,返回结果无加密
  51. static NSString *Mn_userUploadScore = @"UserUploadScore";
  52. ///获取用户自己的排名
  53. static NSString *Mn_userGetUserRank = @"UserGetUserRank";
  54. ///当用户登录信息失效时调用的方法名称
  55. static NSString *Mn_loginStatus = @"LoginStatus";
  56. ///当用户登录信息失效时调用的方法名称
  57. static NSString *Mn_payrecordSubmit = @"PayrecordSubmit";
  58. ///苹果支付票据服务器验证
  59. static NSString *Mn_overseaPayAppleValidate = @"OverseaPayAppleValidate";
  60. ///苹果支付票据服务器验证
  61. static NSString *Mn_overseaPayUserAppleValidate = @"UserAppleValidate";
  62. ///查询用户状态
  63. static NSString *Mn_loginQueryUserState = @"LoginQueryUserState";
  64. ///提交游戏关键数据 一次判定游戏是否作弊,是否封号 结果无加密
  65. static NSString *Mn_gamekeyinfoUpload = @"GamekeyinfoUpload";
  66. ///获取单个游戏所有后台配置的商品列表
  67. static NSString *Mn_getGoodsList = @"GetGoodsList";
  68. ///获取单个游戏所有后台配置的商品列表
  69. static NSString *Mn_dataReport = @"DataReport";
  70. ///反馈透传接口
  71. static NSString *Mn_addExtraData = @"AddExtraData";
  72. ///反馈透传接口
  73. static NSString *Mn_checkParameter = @"CheckParameter";
  74. @protocol YLApisManagerDelegate <NSObject>
  75. @optional
  76. -(void)requestSucessedWithMethodName:(NSString *)methodName jsonStr:(NSString *)jsonStr;
  77. -(void)requestFailWithMethodName:(NSString *)methodName errorStr:(NSString *)errorStr;
  78. -(void)webviewDidOpen;
  79. -(void)webviewDidClose;
  80. -(void)webviewPaySucessedWithOrderID:(NSString *)orderId;
  81. -(void)webviewPayFailWithErrorMsg:(NSString *)errorMsg;
  82. @end
  83. typedef void(^ApiCallBackBlock)(int stateCode, NSString *methodName, NSString * __nullable jsonStr, NSError * __nullable error);
  84. @interface YLApisManager : NSObject
  85. @property (nonatomic,copy) NSString *gameID;
  86. @property (nonatomic,copy) NSString *userID;
  87. /// 回调协议
  88. @property (nonatomic, weak) id<YLApisManagerDelegate> delegate;
  89. /// 内部使用回调,避免将外部协议抢了
  90. @property (nonatomic, copy) ApiCallBackBlock apiCallBackBlock;
  91. + (instancetype)sharedManager;
  92. /// 初始化SDK -建议使用该方法初始化
  93. /// @param gameID 游戏ID
  94. /// @param signStr 对应的密钥
  95. /// @param isDebug 是否是测试环境,NO是正式环境,YES是测试环境
  96. -(void)initSDKWithGameID:(NSString *)gameID signStr:(NSString *)signStr isDebug:(BOOL)isDebug;
  97. /// 初始化SDK
  98. /// @param gameID 游戏ID
  99. /// @param signStr 对应的密钥
  100. /// @param baseUrl 环境地址,当为空时,会使用默认的正式环境
  101. -(void)initSDKWithGameID:(NSString *)gameID signStr:(NSString *)signStr baseUrl:(NSString *)baseUrl;
  102. -(void)configAFConversionDataWithadInfo:(YLAdInfo *)adInfo;
  103. -(NSString *)getUserId;
  104. //用于后台查看检查游戏参数设置是否正确
  105. -(void)checkGameParamWithFbID:(NSString *)fbId admobId:(NSString *)admobId adIds:(NSString *)adIds umengId:(NSString *)umengId;
  106. /// 获取活动列表
  107. /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识
  108. /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文
  109. -(void)getActivitiesWithChannel:(NSString *)channel language:(NSString *)language;
  110. /// 获取广告列表
  111. /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识
  112. /// @param version 适用的版本
  113. /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文
  114. -(void)getGameAnoncementsWithChannel:(NSString *)channel version:(NSString *)version language:(NSString *)language;
  115. /// 渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析
  116. /// @param channel 渠道名称
  117. /// @param goodsId 商品ID
  118. -(void)channelPayOrderWithChannel:(NSString *)channel goodsId:(NSString *)goodsId;
  119. /// 获取当前游戏,渠道的最新版本 返回结果无加密
  120. /// @param channel 渠道名称
  121. -(void)channelpayGetAppVersionWithChannel:(NSNumber *)channel;
  122. /// 获取服务器配置
  123. /// @param appVer 应用的版本号,如果不需要根据版本判断可以串0
  124. /// @param lastVer 上一次上传的配置版本,每次全新获取传0
  125. -(void)configSyncWithAppVer:(NSString *)appVer lastVer:(NSNumber *)lastVer;
  126. /// 获取服务信息
  127. -(void)configServerinfo;
  128. /// 兑换码兑换接口
  129. /// @param redeemCode 兑换码
  130. -(void)dedeemConsumeWithRedeemCode:(NSString *)redeemCode;
  131. /// 根据渠道兑换码兑换接口
  132. /// @param redeemCode 兑换码
  133. /// @param channel 渠道标识 0:官方包 3:vivo 4:oppo 5:huawei 6:4399 7:应用宝 8:xiaomi 或其他在后台渠道管理页面定义的标识
  134. -(void)redeemConsumeWithRedeemCode:(NSString *)redeemCode channel:(NSString *)channel;
  135. /// 根据渠道和用户兑换码兑换接口
  136. /// @param redeemCode 兑换码
  137. /// @param channel 渠道标识 0:官方包 3:vivo 4:oppo 5:huawei 6:4399 7:应用宝 8:xiaomi 或其他在后台渠道管理页面定义的标识
  138. /// @param clientId 用户ID,使用api登录时传入对应UserID,使用其他系统登录则传入对应用户唯一标识
  139. -(void)redeemUserConsumeWithRedeemCode:(NSString *)redeemCode channel:(NSString *)channel clientId:(NSString *)clientId ;
  140. /// 用户提交反馈
  141. /// @param msg 反馈详情
  142. /// @param contact 联系方式
  143. /// @param documentinfo 存档字符串
  144. -(void)feedbackSubmitWithAppVer:(NSString *)appVer Msg:(NSString *)msg contact:(NSString *)contact documentinfo:(NSString *)documentinfo;
  145. /// 登录接口微信-游客 登录之后返回token,每次操作验证token 请求需要签名,返回数据无加密
  146. /// @param markId 用户ID
  147. /// @param type 用户类型
  148. /// @param name 用户名称
  149. /// @param icon 用户头像的链接地址
  150. -(void)userLoginWithMarkId:(NSString *)markId type:(NSNumber *)type name:(NSString *)name iconurlStr:(NSString *)icon;
  151. /// 获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
  152. /// archive为空字符串则为获取最新服务器存档;archive不为空,archiveVersion不为空则是提交存档
  153. /// @param archive 存档数据字符串
  154. /// @param archiveVersion 存档版本
  155. -(void)userSyncWithArchive:(NSString *)archive archiveVersion:(NSNumber *)archiveVersion;
  156. /// 获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
  157. -(void)userSyncStream;
  158. ///心跳检测,判断当前客户端登陆是否有效 请求需要签名,返回数据无加密
  159. -(void)userHeartbeat;
  160. /// 用户下订接口,下单成功之后返回支付链接 -跳转支付页面
  161. /// @param goodsId 商品ID
  162. -(void)userOrderWithGoodsId:(NSString *)goodsId;
  163. ///恢复购买,查看已完成的所有订单,以及消耗状态 请求需要签名,返回结果有加密
  164. -(void)userResumePurchase;
  165. /// 订单消耗 请求需要签名,返回结果有加密
  166. /// @param goodsId 商品ID
  167. /// @param orderId 订单号
  168. -(void)userConsumeWithGoodsId:(NSString *)goodsId orderId:(NSString *)orderId;
  169. /// 查询单个订单的状态 用来处理非消耗性商品,判断订单是否支付完成 返回结果有加密 Orderstatus - 0 未购买 1 已购买 未消耗 2 已购买 已消耗
  170. /// @param goodsId 商品ID
  171. /// @param orderId 订单ID
  172. -(void)userQueryOrderWithGoodsId:(NSString *)goodsId orderId:(NSString *)orderId;
  173. ///获取排行榜 用户信息
  174. -(void)userLeaderboard;
  175. /// 提交用户分数 返回用户排行榜信息,返回结果无加密
  176. /// @param score 分数
  177. /// @param info 信息数据
  178. /// @param rankingId 排行榜ID
  179. -(void)userUploadScoreWithScore:(NSNumber *)score info:(NSString *)info rankingId:(NSString *)rankingId;
  180. /// 获取用户自己的排名
  181. /// @param rankingId 排行榜ID
  182. -(void)userGetUserRankWithRankingId:(NSString *)rankingId;
  183. /// 上报付费
  184. -(void)payrecordSubmit;
  185. /// 苹果票据验证
  186. /// @param receipt 票据
  187. /// @param appleorderid 苹果订单ID
  188. /// @param sku 商品类型
  189. /// @param skuType 类型 内购或订阅
  190. /// @param price 价格
  191. /// @param actid 活动ID
  192. -(void)overseaPayAppleValidateWithReceipt:(NSString *)receipt appleOrderId:(NSString *)appleorderid sku:(NSString *)sku skuType:(NSString *)skuType price:(NSString *)price actId:(nullable NSString *)actid;
  193. /// 苹果票据验证
  194. /// @param receipt 票据
  195. /// @param appleorderid 苹果订单ID
  196. /// @param sku 商品类型
  197. /// @param skuType 类型 内购或订阅
  198. /// @param actid 活动ID
  199. -(void)overseaPayUserAppleValidateWithReceipt:(NSString *)receipt appleOrderId:(NSString *)appleorderid sku:(NSString *)sku skuType:(NSString *)skuType actId:(nullable NSString *)actid;
  200. /// 提交用户关键信息,校验是否作弊
  201. /// @param infoJson 用户信息
  202. -(void)gamekeyinfoUploadWithInfoJson:(NSString *)infoJson;
  203. -(void)dataReportWithEventName:(NSString *)eventName eventValue:(NSString *)eventValue remark:(NSString *)remark labels:(nullable NSDictionary *)labelsDic;
  204. -(void)dataReportWithEventsArray:(NSArray *)eventsArray;
  205. -(void)getAllGoods;
  206. -(void)addExtraData:(NSString *)dataStr;
  207. @end
  208. NS_ASSUME_NONNULL_END