From aed2f871f0329e688cd4703b2502c42c8aed5f8e Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Mon, 22 Jan 2024 22:47:35 +0800 Subject: [PATCH] qyweixin2 --- qyweixin/app.go | 26 ++------------------------ qyweixin/app_approve.go | 4 ++-- qyweixin/app_checkin.go | 4 ++-- qyweixin/app_hr.go | 4 ++-- qyweixin/app_pay.go | 22 ++++++++++++++++++++-- 5 files changed, 28 insertions(+), 32 deletions(-) diff --git a/qyweixin/app.go b/qyweixin/app.go index 40fe37b..02124aa 100644 --- a/qyweixin/app.go +++ b/qyweixin/app.go @@ -40,13 +40,9 @@ type UserInfo struct { RealName string } -func NewApp(corpId, secret, agent string) *App { +func NewApp(cfg *AppConfig) *App { return &App{ - config: &AppConfig{ - Corpid: corpId, - Secret: secret, - Agent: agent, - }, + config: cfg, } } @@ -71,24 +67,6 @@ func (q *App) GetResult(rspBody []byte) (map[string]interface{}, error) { 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) { if err := q.refreshToken(); err != nil { return nil, err diff --git a/qyweixin/app_approve.go b/qyweixin/app_approve.go index e835138..788e829 100644 --- a/qyweixin/app_approve.go +++ b/qyweixin/app_approve.go @@ -132,9 +132,9 @@ func (d *ApproveDetail) GetUserid() string { return d.Applyer.Userid } -func NewAppApprove(corpId, secret, agent string) *AppApprove { +func NewAppApprove(cfg *AppConfig) *AppApprove { return &AppApprove{ - App: *NewApp(corpId, secret, agent), + App: *NewApp(cfg), } } diff --git a/qyweixin/app_checkin.go b/qyweixin/app_checkin.go index 503f562..a473e93 100644 --- a/qyweixin/app_checkin.go +++ b/qyweixin/app_checkin.go @@ -31,9 +31,9 @@ type AppCheckin struct { App } -func NewAppCheckin(corpId, secret, agent string) *AppCheckin { +func NewAppCheckin(cfg *AppConfig) *AppCheckin { return &AppCheckin{ - App: *NewApp(corpId, secret, agent), + App: *NewApp(cfg), } } diff --git a/qyweixin/app_hr.go b/qyweixin/app_hr.go index a7c9839..84efd52 100644 --- a/qyweixin/app_hr.go +++ b/qyweixin/app_hr.go @@ -34,9 +34,9 @@ type StaffInfo struct { BankCard string } -func NewAppHr(corpId, secret, agent string) *AppHr { +func NewAppHr(cfg *AppConfig) *AppHr { return &AppHr{ - App: *NewApp(corpId, secret, secret), + App: *NewApp(cfg), } } diff --git a/qyweixin/app_pay.go b/qyweixin/app_pay.go index 52157e8..58493af 100644 --- a/qyweixin/app_pay.go +++ b/qyweixin/app_pay.go @@ -57,7 +57,7 @@ func NewAppPay(cfg *PayConfig) *AppPay { } 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 return pay } @@ -125,6 +125,24 @@ func (w *AppPay) initPay() error { 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 { if p.cli == nil { if err := p.initPay(); err != nil { @@ -133,7 +151,7 @@ func (p *AppPay) PayMoney(req *PayReq) error { } param := butil.NewParams() - userOpenid, err := p.GetOpenid(req.Userid) + userOpenid, err := p.getOpenid(req.Userid) if err != nil { log.Errorf("get openid error :%s", err.Error()) return err