telegram.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package third
  2. import (
  3. "fmt"
  4. jsoniter "github.com/json-iterator/go"
  5. mhayaHttp "github.com/mhaya/extend/http"
  6. "github.com/mhaya/game/game_cluster/internal/data"
  7. mhayaLogger "github.com/mhaya/logger"
  8. )
  9. type GetIfChannelResp struct {
  10. //Result struct {
  11. // Status string `json:"status"`
  12. //} `json:"result"`
  13. Ok bool `json:"ok"`
  14. Result map[string]interface{} `json:"result"`
  15. }
  16. // 判断是否是VIP
  17. func GetIfPremium(openid int64) int32 {
  18. ret := data.SdkConfig.Get(2)
  19. params := map[string]string{}
  20. rs, _, err := mhayaHttp.GET(fmt.Sprintf("%vbot%v/getChatMember?chat_id=%v&user_id=%v", ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid), params)
  21. if err != nil {
  22. mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
  23. ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
  24. err.Error())
  25. return 0
  26. }
  27. var resp GetIfChannelResp
  28. err = jsoniter.Unmarshal(rs, &resp)
  29. if err != nil {
  30. mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
  31. ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
  32. err.Error())
  33. return 0
  34. }
  35. if !resp.Ok {
  36. mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
  37. ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
  38. resp.Result["description"])
  39. return 0
  40. }
  41. isPremium, ok := resp.Result["is_premium"].(bool)
  42. if !ok {
  43. mhayaLogger.Infof("Warning: 'is_premium' field not found in member info")
  44. return 0
  45. }
  46. if isPremium {
  47. return 1
  48. }
  49. return 0
  50. }
  51. // 判断用户是否是成员
  52. func GetIfChannel(openid int64) int32 {
  53. ret := data.SdkConfig.Get(2)
  54. params := map[string]string{}
  55. rs, _, err := mhayaHttp.GET(fmt.Sprintf("%vbot%v/getChatMember?chat_id=%v&user_id=%v", ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid), params)
  56. if err != nil {
  57. mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
  58. ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
  59. err.Error())
  60. return 0
  61. }
  62. var resp GetIfChannelResp
  63. err = jsoniter.Unmarshal(rs, &resp)
  64. if err != nil {
  65. mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
  66. ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
  67. err.Error())
  68. return 0
  69. }
  70. isMember, ok := resp.Result["member"].(bool)
  71. if !ok {
  72. mhayaLogger.Infof("Warning: 'is_premium' field not found in member info")
  73. return 0
  74. }
  75. if isMember {
  76. return 1
  77. }
  78. return 0
  79. }