bilibili-backup/app/service/main/tv/internal/model/qr.go

45 lines
835 B
Go
Raw Permalink Normal View History

2019-04-22 10:59:20 +08:00
package model
import (
"crypto/md5"
"fmt"
"io"
"strconv"
"time"
xtime "go-common/library/time"
)
// QR represents pay qr info.
type QR struct {
ExpireAt xtime.Time
URL string
Token string
}
// PayParam represents pay params.
type PayParam struct {
Mid int64
Pid int32
BuyNum int32
Guid string
AppChannel string
Status int8
OrderNo string
ExpireAt xtime.Time
}
// MD5 calculates md5 of pay params.
func (p *PayParam) MD5() string {
m := md5.New()
io.WriteString(m, strconv.Itoa(int(p.Mid)))
io.WriteString(m, strconv.Itoa(int(p.Pid)))
io.WriteString(m, strconv.Itoa(int(p.ExpireAt)))
return fmt.Sprintf("%x", string(m.Sum(nil)))
}
// IsExpired return true if pay param is expired.
func (p *PayParam) IsExpired() bool {
return int64(p.ExpireAt) < time.Now().Unix()
}