123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package third
- import (
- "fmt"
- jsoniter "github.com/json-iterator/go"
- mhayaHttp "github.com/mhaya/extend/http"
- "github.com/mhaya/game/game_cluster/internal/data"
- mhayaLogger "github.com/mhaya/logger"
- )
- type GetIfChannelResp struct {
- //Result struct {
- // Status string `json:"status"`
- //} `json:"result"`
- Ok bool `json:"ok"`
- Result map[string]interface{} `json:"result"`
- }
- // 判断是否是VIP
- func GetIfPremium(openid int64) int32 {
- ret := data.SdkConfig.Get(2)
- params := map[string]string{}
- 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)
- if err != nil {
- mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
- ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
- err.Error())
- return 0
- }
- var resp GetIfChannelResp
- err = jsoniter.Unmarshal(rs, &resp)
- if err != nil {
- mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
- ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
- err.Error())
- return 0
- }
- if !resp.Ok {
- mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
- ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
- resp.Result["description"])
- return 0
- }
- isPremium, ok := resp.Result["is_premium"].(bool)
- if !ok {
- mhayaLogger.Infof("Warning: 'is_premium' field not found in member info")
- return 0
- }
- if isPremium {
- return 1
- }
- return 0
- }
- // 判断用户是否是成员
- func GetIfChannel(openid int64) int32 {
- ret := data.SdkConfig.Get(2)
- params := map[string]string{}
- 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)
- if err != nil {
- mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
- ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
- err.Error())
- return 0
- }
- var resp GetIfChannelResp
- err = jsoniter.Unmarshal(rs, &resp)
- if err != nil {
- mhayaLogger.Error("third.GetIfChannel 验证频道失败 url = %v, bottoken = %v, ChatIDName = %v, userID = %v",
- ret.Params.AppUrl, ret.Params.BotToken, ret.Params.ChatIDName, openid,
- err.Error())
- return 0
- }
- isMember, ok := resp.Result["member"].(bool)
- if !ok {
- mhayaLogger.Infof("Warning: 'is_premium' field not found in member info")
- return 0
- }
- if isMember {
- return 1
- }
- return 0
- }
|