You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"net/url" |
|
|
|
"go-common/app/service/main/coupon/model" |
|
"go-common/library/ecode" |
|
|
|
"github.com/pkg/errors" |
|
) |
|
|
|
//CaptchaToken get captcha token. |
|
func (d *Dao) CaptchaToken(c context.Context, bid string, ip string) (res *model.Token, err error) { |
|
args := url.Values{} |
|
args.Add("bid", bid) |
|
resq := new(struct { |
|
Code int `json:"code"` |
|
Data *model.Token `json:"data"` |
|
}) |
|
if err = d.client.Get(c, d.c.Property.CaptchaTokenURL, ip, args, resq); err != nil { |
|
err = errors.Wrapf(err, "dao captcha token do") |
|
return |
|
} |
|
if resq.Code != ecode.OK.Code() { |
|
err = ecode.Int(resq.Code) |
|
err = errors.Wrapf(err, "dao captcha token code") |
|
return |
|
} |
|
res = resq.Data |
|
return |
|
} |
|
|
|
//CaptchaVerify get captcha verify. |
|
func (d *Dao) CaptchaVerify(c context.Context, code string, token string, ip string) (err error) { |
|
args := url.Values{} |
|
args.Add("token", token) |
|
args.Add("code", code) |
|
resq := new(struct { |
|
Code int `json:"code"` |
|
}) |
|
if err = d.client.Post(c, d.c.Property.CaptchaVerifyURL, ip, args, resq); err != nil { |
|
err = errors.Wrapf(err, "dao captcha verify do") |
|
return |
|
} |
|
if resq.Code != ecode.OK.Code() { |
|
err = ecode.CouponCodeVerifyFaildErr |
|
} |
|
return |
|
}
|
|
|