qyweixin2

This commit is contained in:
jiangyong27 2024-01-22 22:47:35 +08:00
parent 10b4ed02e1
commit aed2f871f0
5 changed files with 28 additions and 32 deletions

View File

@ -40,13 +40,9 @@ type UserInfo struct {
RealName string RealName string
} }
func NewApp(corpId, secret, agent string) *App { func NewApp(cfg *AppConfig) *App {
return &App{ return &App{
config: &AppConfig{ config: cfg,
Corpid: corpId,
Secret: secret,
Agent: agent,
},
} }
} }
@ -71,24 +67,6 @@ func (q *App) GetResult(rspBody []byte) (map[string]interface{}, error) {
return result, nil return result, nil
} }
func (q *App) GetOpenid(userid string) (string, error) {
if err := q.refreshToken(); err != nil {
return "", err
}
reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=%s", q.GetToken())
rspBody, err := util.HttpPostJson(reqUrl, nil, []byte(fmt.Sprintf(`{"userid" : "%s"}`, userid)))
if err != nil {
log.Errorf("httpPost url[%s] error :%s", reqUrl, err.Error())
return "", err
}
result, err := q.GetResult(rspBody)
if err != nil {
return "", err
}
return cast.ToString(result["openid"]), nil
}
func (q *App) GetUserInfo(userid string) (*UserInfo, error) { func (q *App) GetUserInfo(userid string) (*UserInfo, error) {
if err := q.refreshToken(); err != nil { if err := q.refreshToken(); err != nil {
return nil, err return nil, err

View File

@ -132,9 +132,9 @@ func (d *ApproveDetail) GetUserid() string {
return d.Applyer.Userid return d.Applyer.Userid
} }
func NewAppApprove(corpId, secret, agent string) *AppApprove { func NewAppApprove(cfg *AppConfig) *AppApprove {
return &AppApprove{ return &AppApprove{
App: *NewApp(corpId, secret, agent), App: *NewApp(cfg),
} }
} }

View File

@ -31,9 +31,9 @@ type AppCheckin struct {
App App
} }
func NewAppCheckin(corpId, secret, agent string) *AppCheckin { func NewAppCheckin(cfg *AppConfig) *AppCheckin {
return &AppCheckin{ return &AppCheckin{
App: *NewApp(corpId, secret, agent), App: *NewApp(cfg),
} }
} }

View File

@ -34,9 +34,9 @@ type StaffInfo struct {
BankCard string BankCard string
} }
func NewAppHr(corpId, secret, agent string) *AppHr { func NewAppHr(cfg *AppConfig) *AppHr {
return &AppHr{ return &AppHr{
App: *NewApp(corpId, secret, secret), App: *NewApp(cfg),
} }
} }

View File

@ -57,7 +57,7 @@ func NewAppPay(cfg *PayConfig) *AppPay {
} }
pay.tlsClient = client pay.tlsClient = client
pay.App = *NewApp(cfg.Corpid, cfg.Secret, cfg.Agent) pay.App = *NewApp(&AppConfig{Corpid: cfg.Corpid, Secret: cfg.Secret, Agent: cfg.Agent})
pay.config = cfg pay.config = cfg
return pay return pay
} }
@ -125,6 +125,24 @@ func (w *AppPay) initPay() error {
return nil return nil
} }
func (q *App) getOpenid(userid string) (string, error) {
if err := q.refreshToken(); err != nil {
return "", err
}
reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=%s", q.GetToken())
rspBody, err := butil.HttpPostJson(reqUrl, nil, []byte(fmt.Sprintf(`{"userid" : "%s"}`, userid)))
if err != nil {
log.Errorf("httpPost url[%s] error :%s", reqUrl, err.Error())
return "", err
}
result, err := q.GetResult(rspBody)
if err != nil {
return "", err
}
return cast.ToString(result["openid"]), nil
}
func (p *AppPay) PayMoney(req *PayReq) error { func (p *AppPay) PayMoney(req *PayReq) error {
if p.cli == nil { if p.cli == nil {
if err := p.initPay(); err != nil { if err := p.initPay(); err != nil {
@ -133,7 +151,7 @@ func (p *AppPay) PayMoney(req *PayReq) error {
} }
param := butil.NewParams() param := butil.NewParams()
userOpenid, err := p.GetOpenid(req.Userid) userOpenid, err := p.getOpenid(req.Userid)
if err != nil { if err != nil {
log.Errorf("get openid error :%s", err.Error()) log.Errorf("get openid error :%s", err.Error())
return err return err