Files
huangguo_server/web/service/smsser/smsser.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

58 lines
1.8 KiB
Go

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
}