源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

105 行
3.2 KiB

  1. PlatformSetting = PlatformSetting or BaseClass()
  2. --用于初始化一些特殊设置的平台
  3. function PlatformSetting:__init()
  4. if PlatformSetting.Instance ~= nil then
  5. error("attempt to create singleton(PlatformSetting) twice!")
  6. return
  7. end
  8. PlatformSetting.Instance = self
  9. self.cur_platform = nil
  10. end
  11. function PlatformSetting:getInstance()
  12. if PlatformSetting.Instance == nil then
  13. PlatformSetting.New()
  14. end
  15. return PlatformSetting.Instance
  16. end
  17. function PlatformSetting:Init(platform)
  18. self.cur_platform = platform
  19. --乐牛平台
  20. if PlatformMgr:getInstance():IsLeniuPlatform() then
  21. local feedback_server = function(msg)
  22. self:FeedbackServer(msg)
  23. end
  24. GlobalEventSystem:Bind("LENIU_FEEDBACK_SERVER",feedback_server)
  25. end
  26. end
  27. function PlatformSetting:FeedbackServer(msg)
  28. --msg.type,msg.topictxt,msg.txt
  29. local role_info = RoleManager.Instance.mainRoleInfo
  30. local playerInfo = LoginController.Instance:GetPlatUserInfo()
  31. local uid = self.cur_platform:GetUserID()
  32. local server_role = self.cur_platform:ServerRole(0)
  33. local random = math.random(100,999)
  34. local now_order_num = server_role .. "-" .. uid .. "-" .. os.time() .. random
  35. local function encodeURI(s)
  36. s = string.gsub(s, "([^_%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
  37. return string.gsub(s, " ", "+")
  38. end
  39. local sent_param = {
  40. timestamp = TimeUtil:getServerTime(), --不要写机器时间 可能玩家时间对不上
  41. unique_id = playerInfo.server_id .. "-" .. role_info.role_id,
  42. role_name = encodeURI(role_info.name),
  43. title = encodeURI(msg.topictxt),
  44. content = encodeURI(msg.txt),
  45. msg_type = msg.type,
  46. appid = "82d7a6e280727312",
  47. account_name = uid,
  48. game_zone = encodeURI(playerInfo.server_name),
  49. game_server = playerInfo.server_id,
  50. register_time = os.time(),
  51. login_time = os.time(),
  52. pay_total = 0,
  53. vip_level = role_info.vip_flag,
  54. ext = now_order_num,
  55. avatar = "",
  56. }
  57. local key_table = {}
  58. for key,_ in pairs(sent_param) do
  59. table.insert(key_table,key)
  60. end
  61. table.sort(key_table)
  62. local sign_value = ""
  63. for _,key in pairs(key_table) do
  64. sign_value = sign_value .. key .."=" .. sent_param[key] .. "&"
  65. end
  66. sign_value = string.sub(sign_value,1,#sign_value - 1)
  67. sign_value = sign_value .. "|7ca888b953f1ba402175529b4cbc9959"
  68. print("------sign_value--------",sign_value)
  69. sign_value = string.lower(Util.md5(sign_value))
  70. sent_param["sign"] = sign_value
  71. local sent_back = function(ret,error_msg,data)
  72. local json_obj = JsonToTable(data)
  73. print("---------leniufeedback-------",ret,error_msg,data)
  74. if ret and json_obj then
  75. local errcode = json_obj["errcode"]
  76. local errmsg = json_obj["errmsg"]
  77. local data = json_obj["data"]
  78. local work_id = -1
  79. if data then
  80. work_id = data["work_id"]
  81. end
  82. if tonumber(errcode) == 0 then
  83. GlobalEventSystem:Fire(WelfareModel.FEEDBACK_SUCCESS)
  84. Message.show("游戏客服已收到您的反馈,稍后会以邮件方式回复,请耐心等待。")
  85. else
  86. Message.show("网络异常,请稍后再试,错误码:" .. errcode .. " 错误信息:" .. errmsg )
  87. end
  88. end
  89. end
  90. print("------sent_param---------",table2json(sent_param))
  91. HttpUtil.HttpPostRequest("http://api.kf.leniu.com/message/send/v1/", sent_param, sent_back)
  92. end