HttpDouyinApiCallbackHandler.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using Newtonsoft.Json.Linq;
  6. namespace ET.Server
  7. {
  8. /// <summary>
  9. /// 抖音api回调, 评论添加玩家
  10. /// </summary>
  11. [HttpHandler(SceneType.RouterManager, "/addPlayer")]
  12. public class HttpCommentHandler: IHttpHandler
  13. {
  14. public async ETTask Handle(Entity domain, HttpListenerContext context)
  15. {
  16. Log.Debug($"收到http 评论添加玩家回调...");
  17. HttpDouyinApiCallbackResponse response = new HttpDouyinApiCallbackResponse();
  18. string bodyStr = await HttpHelper.GetBodyParameter(context);
  19. // 判断body是否为空
  20. if (string.IsNullOrEmpty(bodyStr))
  21. {
  22. response.Error = ErrorCode.ERR_ParameterError;
  23. response.Message = "参数错误";
  24. HttpHelper.Response(context, response);
  25. return;
  26. }
  27. JObject parameter = JObject.Parse(bodyStr);
  28. string openId = Convert.ToString(parameter.SelectToken("openId"));
  29. long roomId = Convert.ToInt64(parameter.SelectToken("roomId"));
  30. int serverId = Convert.ToInt32(parameter.SelectToken("serverId"));
  31. Log.Debug($"body参数: openid={openId}, roomId={roomId}, serverId={serverId}");
  32. // 判断参数
  33. if (string.IsNullOrEmpty(openId) || roomId <= 0 || serverId <= 0)
  34. {
  35. response.Error = ErrorCode.ERR_ParameterError;
  36. response.Message = "参数错误";
  37. HttpHelper.Response(context, response);
  38. return;
  39. }
  40. List<StartSceneConfig> list = RealmGateAddressHelper.GetAllGame(1);
  41. foreach (StartSceneConfig config in list.Where(config => config != null && config.Id == serverId))
  42. {
  43. for (int i = 1; i <= 4; i++)
  44. {
  45. MessageHelper.SendActor(config.InstanceId, new R2G_AddUnitsToMap() { OpenId = (i * 100).ToString(), RoomId = roomId});
  46. }
  47. break;
  48. }
  49. HttpHelper.Response(context, response);
  50. await ETTask.CompletedTask;
  51. }
  52. }
  53. /// <summary>
  54. /// 抖音api回调, 点赞10次增加等级
  55. /// </summary>
  56. [HttpHandler(SceneType.RouterManager, "/like")]
  57. public class HttpLikeHandler: IHttpHandler
  58. {
  59. public async ETTask Handle(Entity domain, HttpListenerContext context)
  60. {
  61. Log.Debug($"收到http 点赞10次增加等级回调...");
  62. HttpDouyinApiCallbackResponse response = new HttpDouyinApiCallbackResponse();
  63. string bodyStr = await HttpHelper.GetBodyParameter(context);
  64. if (string.IsNullOrEmpty(bodyStr))
  65. {
  66. response.Error = ErrorCode.ERR_ParameterError;
  67. response.Message = "参数错误";
  68. HttpHelper.Response(context, response);
  69. return;
  70. }
  71. JObject parameter = JObject.Parse(bodyStr);
  72. string openId = Convert.ToString(parameter.SelectToken("openId"));
  73. long roomId = Convert.ToInt64(parameter.SelectToken("roomId"));
  74. int serverId = Convert.ToInt32(parameter.SelectToken("serverId"));
  75. // 点赞数
  76. int likes = Convert.ToInt32(parameter.SelectToken("likes"));
  77. likes = 30;
  78. Log.Debug($"body参数: openid={openId}, roomId={roomId}, serverId={serverId}, likes={likes}");
  79. // 判断参数
  80. if (string.IsNullOrEmpty(openId) || roomId <= 0 || serverId <= 0 || likes < 0)
  81. {
  82. response.Error = ErrorCode.ERR_ParameterError;
  83. response.Message = "参数错误";
  84. HttpHelper.Response(context, response);
  85. return;
  86. }
  87. List<StartSceneConfig> list = RealmGateAddressHelper.GetAllGame(1);
  88. foreach (StartSceneConfig config in list.Where(config => config != null && config.Id == serverId))
  89. {
  90. MessageHelper.SendActor(config.InstanceId, new R2G_AddLevel() { OpenId = openId, RoomId = roomId, Likes = likes});
  91. break;
  92. }
  93. HttpHelper.Response(context, response);
  94. await ETTask.CompletedTask;
  95. }
  96. }
  97. }