PlatformFenYouH5.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. /**
  2. * 止零h5版本 sdk配置
  3. game_id h5_cWFlTwvg2aLP2GUA
  4. game_secret ak_LGOfbtYUmEq7nLvh1gFRN0pDdxw3xPDJ
  5. 微信内跳转入口是
  6. https://www.fenyouwangluo.com/sdkh5/weixin/route.html?game_id=h5_AXDpKLjJJoqQNAcn
  7. 引入SDK:在html中添加一个script标签就可以了
  8. <script src="https://www.fenyouwangluo.com/h5_sdk_v1.js"></script>
  9. */
  10. import { gameMethod } from "../common/gameMethod";
  11. import { PlayerLogin, PlayerLoginPram } from "../common/Xyc";
  12. import { SevBack } from "../common/Xys";
  13. import Config from "../Config";
  14. import { LoadEvent } from "../data/const/EventConst";
  15. import { GameErrCode, PayProductParam, ReportRoleType } from "../data/const/TypeConst";
  16. import GameDataCenter from "../data/GameDataCenter";
  17. import GameController from "../GameController";
  18. import UIHelp from "../logic/ui/UIHelp";
  19. import EventMng from "../manager/EventMng";
  20. import PlatformBase from "./PlatformBase";
  21. export default class PlatformFenYouH5 extends PlatformBase {
  22. isGoPay: boolean
  23. constructor() {
  24. super()
  25. cc.game.on(cc.game.EVENT_SHOW, () => {
  26. if (this.isGoPay) {
  27. this.isGoPay = false
  28. if (Config.paySuccAdokId != null) {
  29. clearInterval(Config.paySuccAdokId)
  30. Config.paySuccAdokId = null
  31. }
  32. Config.paySuccAdokIndex = 0
  33. Config.paySuccAdokId = setInterval(() => {
  34. Config.paySuccAdokIndex++
  35. if (Config.paySuccAdokIndex >= 5) {
  36. clearInterval(Config.paySuccAdokId)
  37. Config.paySuccAdokId = null
  38. }
  39. GameDataCenter.time.sendAdok()
  40. }, 1000)
  41. }
  42. })
  43. }
  44. private getQueryString(name) {
  45. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  46. var r = window.location.search.substring(1).match(reg);
  47. if (r != null) {
  48. return decodeURIComponent(r[2]);
  49. } else {
  50. return null;
  51. }
  52. }
  53. showLoginView(): void {
  54. // 微信小游戏平台静默登录 wxcb1ddf06f99c2f9e
  55. console.log("初始化&登录SDK")
  56. EventMng.emit(LoadEvent.LOAD_PROGRESS, 0.25, "login")
  57. try {
  58. zlGame.initSdk().then(res => {
  59. console.log("初始化成功", res)
  60. EventMng.emit(LoadEvent.LOAD_PROGRESS, 0.75, "login")
  61. let user_id = this.getQueryString("user_id")
  62. let user_token = this.getQueryString("user_token")
  63. let game_id = this.getQueryString("game_id")
  64. let params: PlayerLoginPram = {
  65. pid: Config.pid,
  66. param: [user_id, user_token, game_id]
  67. }
  68. GameController.network.send(PlayerLogin.url, params, (result: SevBack) => {
  69. console.log("后段验证返回")
  70. if (result.type != 1) {
  71. if (gameMethod.isEmpty(result.win) || gameMethod.isEmpty(result.win.msgOut)) {
  72. GameDataCenter.plat.showErrDialog(GameErrCode.errGamePlatLogin)
  73. }
  74. return
  75. }
  76. EventMng.emit(LoadEvent.LOAD_PROGRESS, 1, "login")
  77. if (result.type == 1 && result.platBack) {
  78. this.openId = result.platBack.openid
  79. this.loginParams = [result.platBack.token]
  80. console.log("后端验证成功", this.openId)
  81. this.login()
  82. } else {
  83. console.log("PlayerLogin.url 返回数据异常")
  84. if (gameMethod.isEmpty(result.win) || gameMethod.isEmpty(result.win.msgOut)) {
  85. GameDataCenter.plat.showErrDialog(GameErrCode.errGamePlatLogin)
  86. }
  87. }
  88. })
  89. })
  90. } catch (error) {
  91. UIHelp.ShowTips("----" + error)
  92. UIHelp.ShowDialog({ content: error })
  93. }
  94. }
  95. pay(orderId: string, order10cs: string, param: PayProductParam): void {
  96. console.log("===调起zhiling支付")
  97. // UIHelp.ShowTips("调起zhiling支付")
  98. let req: { role_id: string, role_name: string, zone_id: string, server_id: string, server_name: string, role_level: number, role_vip: number, game_trade_no: string, product_id: string, product_name: string, amount: number, extra_params: string } = {
  99. role_id: GameDataCenter.sevBack.userInfo?.a?.uuid,
  100. role_name: GameDataCenter.sevBack.userInfo?.a?.name,
  101. zone_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  102. server_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  103. server_name: GameDataCenter.sevBack.qufuList[GameDataCenter.sevBack.userInfo?.a?.sid].name,
  104. role_level: GameDataCenter.sevBack.userInfo?.a?.level,
  105. role_vip: 1,
  106. game_trade_no: orderId,
  107. product_id: param.productId,
  108. product_name: param.productName,
  109. amount: param.price * 100,
  110. extra_params: orderId
  111. }
  112. if (Config.pid == "1310") {
  113. req.amount = req.amount / 100;
  114. }
  115. zlGame.startPay(req).then(res => {
  116. console.log("创建订单成功:", res)
  117. })
  118. }
  119. // 上报角色数据
  120. reportRole(event: ReportRoleType): void {
  121. // • 初始化成功后调⽤. • 进⼊区服、创⻆、⻆⾊等级更新、战⼒更新时调⽤.
  122. if (GameDataCenter.sevBack == null) { return }
  123. if (GameDataCenter.sevBack.userInfo == null) { return }
  124. console.log("上报角色数据:", event)
  125. let onlineTime = 0
  126. if (GameDataCenter.time.onlineTime > 0) {
  127. onlineTime = GameDataCenter.time.sevTime - GameDataCenter.time.onlineTime
  128. }
  129. let eventName = ""
  130. switch (event) {
  131. case ReportRoleType.create:
  132. eventName = "create_role"
  133. break;
  134. // case ReportRoleType.delete:
  135. // eventName = "delete_user"
  136. // break;
  137. case ReportRoleType.levelup:
  138. eventName = "role_upgrade"
  139. break;
  140. case ReportRoleType.offline:
  141. eventName = "role_upgrade"
  142. break;
  143. case ReportRoleType.online:
  144. eventName = "role_upgrade"
  145. break;
  146. case ReportRoleType.other:
  147. eventName = "role_upgrade"
  148. break;
  149. default:
  150. break;
  151. }
  152. let req = {
  153. role_id: GameDataCenter.sevBack.userInfo?.a?.uuid,
  154. role_name: GameDataCenter.sevBack.userInfo?.a?.name,
  155. zone_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  156. server_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  157. server_name: GameDataCenter.sevBack.qufuList[GameDataCenter.sevBack.userInfo?.a?.sid].name,
  158. role_level: GameDataCenter.sevBack.userInfo?.a?.level,
  159. role_vip: 1,
  160. avatar: GameDataCenter.sevBack.userInfo?.a?.head,
  161. nickname: GameDataCenter.sevBack.userInfo?.a?.name
  162. }
  163. // set_userinfo 设置⻆⾊基本信息,如头像、昵称
  164. zlGame.reportRoleInfo(eventName, req).then(res => {
  165. console.log("数据上报成功:", event, eventName, res)
  166. UIHelp.ShowTips("数据上报成功:" + eventName)
  167. })
  168. }
  169. openService() {
  170. // zlGame.showCustomerService().then(res => {
  171. // console.log("展⽰客服界⾯成功", res)
  172. // })
  173. // FguiMgr.Instance.openUI(KeFuCodeView, ViewZorder.POP);
  174. }
  175. }