package gameopen import ( "crypto/md5" "encoding/hex" "fmt" "strings" ) func buildQueryUserSign(req QueryUserRequest, key string) string { return md5Hex(req.GameID + req.UID + req.Token + req.RoomID + key) } func buildUpdateCoinSign(req UpdateCoinRequest, key string) string { return md5Hex( req.OrderID + req.GameID + req.RoundID + req.UID + fmt.Sprintf("%d", req.Coin) + fmt.Sprintf("%d", req.Type) + fmt.Sprintf("%d", req.RewardType) + req.Token + req.WinID + req.RoomID + key, ) } func buildSupplementSign(req SupplementRequest, key string) string { return md5Hex( req.OrderID + req.GameID + req.RoundID + req.UID + fmt.Sprintf("%d", req.Coin) + fmt.Sprintf("%d", req.RewardType) + req.WinID + req.RoomID + key, ) } func verifySign(actual, expected string) bool { return strings.EqualFold(strings.TrimSpace(actual), strings.TrimSpace(expected)) } func receiptTypeFromType(typed int) string { if typed == 2 { return "INCOME" } return "EXPENDITURE" } func md5Hex(value string) string { sum := md5.Sum([]byte(value)) return hex.EncodeToString(sum[:]) }