ValidationUtils.go 1010 Bytes
Newer Older
吴贤德's avatar
吴贤德 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
package Validation

import (
	"errors"
	"regexp"
	"src/Common/Crypto"
	"strconv"
	"time"
)

//sign校验
func ValidSign(tm string, spcode string, sign string, Sps map[string]string) error {
	// return nil //测试时不校验

	var err error
	if len(tm) > 0 && len(spcode) > 0 && len(sign) > 0 {
		key := Sps[spcode]
		if len(key) > 0 {
			t, err1 := strconv.ParseInt(tm, 10, 64)
			if err1 != nil {
				err = err1
			} else {
				span := time.Now().Unix() - t
				if span > 600 {
					err = errors.New("请求超时")
				} else {
					mySign := Crypto.GetMd5String(tm + key + spcode)
					if mySign != sign {
						err = errors.New("sign不匹配")
					}
				}
			}
		} else {
			err = errors.New("sp不存在")
		}
	} else {
		err = errors.New("校验参数不完整")
	}
	return err
}

//验证是否为手机号
func ValidMobile(mobileNum string) bool {
	// reg := `^1([38][0-9]|14[57]|5[^4])\d{8}$`
	reg := `^[1][3,4,5,7,8][0-9]{9}$`
	rgx := regexp.MustCompile(reg)
	return rgx.MatchString(mobileNum)
}