PlatformZhilingH5.ts 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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 PlatformZhilingH5 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. console.log("初始化&登录SDK")
  55. EventMng.emit(LoadEvent.LOAD_PROGRESS, 0.25, "login")
  56. try {
  57. zlGame.initSdk().then(res => {
  58. console.log("初始化成功", res)
  59. EventMng.emit(LoadEvent.LOAD_PROGRESS, 0.75, "login")
  60. let user_id = this.getQueryString("user_id")
  61. let user_token = this.getQueryString("user_token")
  62. let game_id = this.getQueryString("game_id")
  63. let params: PlayerLoginPram = {
  64. pid: Config.pid,
  65. param: [user_id, user_token, game_id]
  66. }
  67. GameController.network.send(PlayerLogin.url, params, (result: SevBack) => {
  68. console.log("后段验证返回")
  69. if (result.type != 1) {
  70. if (gameMethod.isEmpty(result.win) || gameMethod.isEmpty(result.win.msgOut)) {
  71. GameDataCenter.plat.showErrDialog(GameErrCode.errGamePlatLogin)
  72. }
  73. return
  74. }
  75. EventMng.emit(LoadEvent.LOAD_PROGRESS, 1, "login")
  76. if (result.type == 1 && result.platBack) {
  77. this.openId = result.platBack.openid
  78. this.loginParams = [result.platBack.token]
  79. console.log("后端验证成功", this.openId)
  80. this.login()
  81. } else {
  82. console.log("PlayerLogin.url 返回数据异常")
  83. if (gameMethod.isEmpty(result.win) || gameMethod.isEmpty(result.win.msgOut)) {
  84. GameDataCenter.plat.showErrDialog(GameErrCode.errGamePlatLogin)
  85. }
  86. }
  87. })
  88. })
  89. } catch (error) {
  90. UIHelp.ShowTips("----" + error)
  91. UIHelp.ShowDialog({ content: error })
  92. }
  93. }
  94. pay(orderId: string, order10cs: string, param: PayProductParam): void {
  95. console.log("===调起zhiling支付")
  96. // UIHelp.ShowTips("调起zhiling支付")
  97. 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 } = {
  98. role_id: GameDataCenter.sevBack.userInfo?.a?.uuid,
  99. role_name: GameDataCenter.sevBack.userInfo?.a?.name,
  100. zone_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  101. server_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  102. server_name: GameDataCenter.sevBack.qufuList[GameDataCenter.sevBack.userInfo?.a?.sid].name,
  103. role_level: GameDataCenter.sevBack.userInfo?.a?.level,
  104. role_vip: 1,
  105. game_trade_no: orderId,
  106. product_id: param.productId,
  107. product_name: param.productName,
  108. amount: param.price * 100,
  109. extra_params: orderId
  110. }
  111. if (Config.pid == "1310") {
  112. req.amount = req.amount / 100;
  113. }
  114. zlGame.startPay(req).then(res => {
  115. console.log("创建订单成功:", res)
  116. })
  117. }
  118. // 上报角色数据
  119. reportRole(event: ReportRoleType): void {
  120. // • 初始化成功后调⽤. • 进⼊区服、创⻆、⻆⾊等级更新、战⼒更新时调⽤.
  121. if (GameDataCenter.sevBack == null) { return }
  122. if (GameDataCenter.sevBack.userInfo == null) { return }
  123. console.log("上报角色数据:", event)
  124. let onlineTime = 0
  125. if (GameDataCenter.time.onlineTime > 0) {
  126. onlineTime = GameDataCenter.time.sevTime - GameDataCenter.time.onlineTime
  127. }
  128. let eventName = ""
  129. switch (event) {
  130. case ReportRoleType.create:
  131. eventName = "create_role"
  132. break;
  133. // case ReportRoleType.delete:
  134. // eventName = "delete_user"
  135. // break;
  136. case ReportRoleType.levelup:
  137. eventName = "role_upgrade"
  138. break;
  139. case ReportRoleType.offline:
  140. eventName = "role_upgrade"
  141. break;
  142. case ReportRoleType.online:
  143. eventName = "role_upgrade"
  144. break;
  145. case ReportRoleType.other:
  146. eventName = "role_upgrade"
  147. break;
  148. default:
  149. break;
  150. }
  151. let req = {
  152. role_id: GameDataCenter.sevBack.userInfo?.a?.uuid,
  153. role_name: GameDataCenter.sevBack.userInfo?.a?.name,
  154. zone_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  155. server_id: GameDataCenter.sevBack.userInfo?.a?.sid,
  156. server_name: GameDataCenter.sevBack.qufuList[GameDataCenter.sevBack.userInfo?.a?.sid].name,
  157. role_level: GameDataCenter.sevBack.userInfo?.a?.level,
  158. role_vip: 1,
  159. avatar: GameDataCenter.sevBack.userInfo?.a?.head,
  160. nickname: GameDataCenter.sevBack.userInfo?.a?.name
  161. }
  162. // set_userinfo 设置⻆⾊基本信息,如头像、昵称
  163. zlGame.reportRoleInfo(eventName, req).then(res => {
  164. console.log("数据上报成功:", event, eventName, res)
  165. UIHelp.ShowTips("数据上报成功:" + eventName)
  166. })
  167. }
  168. openService() {
  169. zlGame.showCustomerService().then(res => {
  170. console.log("展⽰客服界⾯成功", res)
  171. })
  172. }
  173. }