package smsser import ( "fmt" "91porn-server/common/constant" "91porn-server/common/constant/redisconst" "91porn-server/common/log" "91porn-server/common/maths" "91porn-server/common/sms" "91porn-server/common/stderr" "91porn-server/web/webg" ) // SendSmsCode 发送验证码 func SendSmsCode(mobile string) stderr.Code { redisKey := redisconst.MobileCaptchaKey(mobile) redisCode, err := webg.Redis.Get(redisKey) if err != nil { log.Error("SendCaptcha redis get err", log.E(err)) return stderr.Failure } if redisCode != nil { log.Info("SendCaptcha Resend", log.Any("mobile", mobile)) return stderr.ErrCaptchaExists } code := maths.RandDigits(constant.CaptchaLen) fmt.Println(code) if err = webg.Redis.Set(redisKey, code, redisconst.MobileCaptchaExpire); err != nil { log.Error("SendCaptcha Save Redis error", log.Any("mobile", mobile), log.E(err)) return stderr.Failure } if err = sms.Send(sms.FengNiao, mobile, code); err != nil { log.Error("SendCaptcha send err", log.Any("mobile", mobile), log.Any("Platform", sms.FengNiao), log.E(err)) yunErr := sms.Send(sms.YunPian, mobile, code) if yunErr != nil { log.Error("SendCaptcha send err", log.Any("mobile", mobile), log.Any("Platform", sms.YunPian), log.E(err)) return stderr.ErrSmsSendFail } } return stderr.Success } // VerifySmsCode 验证验证码 func VerifySmsCode(mobile string, code string) stderr.Code { redisKey := redisconst.MobileCaptchaKey(mobile) redisCode, err := webg.Redis.Get(redisKey) if err != nil { log.Error("VerifySmsCode redis get err", log.E(err)) return stderr.Failure } if redisCode != nil && *redisCode == code { return stderr.Success } log.Info("VerifySmsCode miss", log.Any("mobile", mobile), log.Any("code", code), log.Any("redisCode", redisCode)) return stderr.ErrCaptcha }