From 3c90c8deb03ddd76b446b7693b641708a041714b Mon Sep 17 00:00:00 2001 From: dengbiao Date: Wed, 21 Aug 2024 13:49:40 +0800 Subject: [PATCH] update --- app/hdl/hdl_wx_open.go | 94 ++++++++++++++++++++------------------- app/router/router.go | 3 +- static/html/success.html | 87 ++++++++++++++++++++++++++++++++++++ static/img/success.jpeg | Bin 0 -> 12286 bytes 4 files changed, 137 insertions(+), 47 deletions(-) create mode 100644 static/html/success.html create mode 100644 static/img/success.jpeg diff --git a/app/hdl/hdl_wx_open.go b/app/hdl/hdl_wx_open.go index 1b1865a..43b05b6 100644 --- a/app/hdl/hdl_wx_open.go +++ b/app/hdl/hdl_wx_open.go @@ -184,52 +184,54 @@ func GetPreAuthCode(c *gin.Context) { } func GetAuthUrlCallBack(c *gin.Context) { - authCode := c.DefaultQuery("auth_code", "") - if authCode == "" { - e.OutErr(c, e.ERR_NOT_FAN, "auth_code获取失败") - return - } - - fmt.Println("auth_code>>>>>>>>", authCode) - - masterId := c.DefaultQuery("masterId", "") - wxOpenThirdPartyAppListDb := implement.NewWxOpenThirdPartyAppListDb(db.Db) - wxOpenThirdPartyAppList, err := wxOpenThirdPartyAppListDb.GetWxOpenThirdPartyAppList(utils.StrToInt(masterId)) - if err != nil { - return - } - if wxOpenThirdPartyAppList == nil { - e.OutErr(c, e.ERR_NOT_FAN, "未查询到对应三方应用记录") - return - } - wxApiService, err := wechat.NewWxApiService(masterId, wxOpenThirdPartyAppList.Appid, wxOpenThirdPartyAppList.AppSecret) - if err != nil { - e.OutErr(c, e.ERR, err.Error()) - return - } - resp, err := wxApiService.GetAuthorizerAccessTokenByAuthCode(authCode) - if err != nil { - e.OutErr(c, e.ERR, err.Error()) - return - } - - userWxAppletListDb := implement.NewUserWxAppletListDb(db.Db) - userWxAppletList, err := userWxAppletListDb.GetUserWxAppletListByAppId(resp.AuthorizationInfo.AuthorizerAppid) - if err != nil { - return - } - if userWxAppletList == nil { - e.OutErr(c, e.ERR_NOT_FAN, "未查询到小程序应用记录") - return - } - userWxAppletList.AuthorizerRefreshToken = resp.AuthorizationInfo.AuthorizerRefreshToken - _, err = userWxAppletListDb.UpdateUserWxAppletList(userWxAppletList, "authorizer_refresh_token") - if err != nil { - e.OutErr(c, e.ERR_DB_ORM, err.Error()) - return - } - - c.String(http.StatusOK, "ok") + //authCode := c.DefaultQuery("auth_code", "") + //if authCode == "" { + // e.OutErr(c, e.ERR_NOT_FAN, "auth_code获取失败") + // return + //} + // + //fmt.Println("auth_code>>>>>>>>", authCode) + // + //masterId := c.DefaultQuery("masterId", "") + //wxOpenThirdPartyAppListDb := implement.NewWxOpenThirdPartyAppListDb(db.Db) + //wxOpenThirdPartyAppList, err := wxOpenThirdPartyAppListDb.GetWxOpenThirdPartyAppList(utils.StrToInt(masterId)) + //if err != nil { + // return + //} + //if wxOpenThirdPartyAppList == nil { + // e.OutErr(c, e.ERR_NOT_FAN, "未查询到对应三方应用记录") + // return + //} + //wxApiService, err := wechat.NewWxApiService(masterId, wxOpenThirdPartyAppList.Appid, wxOpenThirdPartyAppList.AppSecret) + //if err != nil { + // e.OutErr(c, e.ERR, err.Error()) + // return + //} + //resp, err := wxApiService.GetAuthorizerAccessTokenByAuthCode(authCode) + //if err != nil { + // e.OutErr(c, e.ERR, err.Error()) + // return + //} + // + //userWxAppletListDb := implement.NewUserWxAppletListDb(db.Db) + //userWxAppletList, err := userWxAppletListDb.GetUserWxAppletListByAppId(resp.AuthorizationInfo.AuthorizerAppid) + //if err != nil { + // return + //} + //if userWxAppletList == nil { + // e.OutErr(c, e.ERR_NOT_FAN, "未查询到小程序应用记录") + // return + //} + //userWxAppletList.AuthorizerRefreshToken = resp.AuthorizationInfo.AuthorizerRefreshToken + //_, err = userWxAppletListDb.UpdateUserWxAppletList(userWxAppletList, "authorizer_refresh_token") + //if err != nil { + // e.OutErr(c, e.ERR_DB_ORM, err.Error()) + // return + //} + + c.HTML(http.StatusOK, "success.html", gin.H{ + "applet_name": "激活鸟", + }) return } diff --git a/app/router/router.go b/app/router/router.go index 7c17cae..1035106 100644 --- a/app/router/router.go +++ b/app/router/router.go @@ -33,7 +33,7 @@ func Init() *gin.Engine { } r.Use(gin.Recovery()) // r.Use(mw.Limiter) - //r.LoadHTMLGlob("static/html/*") + r.Delims("<<<", ">>>").LoadHTMLGlob("static/html/*") r.GET("/favicon.ico", func(c *gin.Context) { c.Status(204) @@ -50,6 +50,7 @@ func Init() *gin.Engine { } func route(r *gin.RouterGroup) { + r.Static("/static", "./static") r.GET("/test", hdl.Demo) wxOpenNotify := r.Group("/wxOpen") { diff --git a/static/html/success.html b/static/html/success.html new file mode 100644 index 0000000..988b641 --- /dev/null +++ b/static/html/success.html @@ -0,0 +1,87 @@ + + + + + + 授权成功 + + + +
+ + +

授权成功!

+

您已成功完成微信小程序授权。

+ 前往微信 + +
+ + + + \ No newline at end of file diff --git a/static/img/success.jpeg b/static/img/success.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..65ac8315613952d64356f799e73aa3b5cd820f31 GIT binary patch literal 12286 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 J078xj{||VLLYDvl literal 0 HcmV?d00001