소스 검색

二维码生成

Ohio-HYF 2 년 전
부모
커밋
9d95352801
2개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 0
      route/init.go
  2. 9 2
      service/qrcode.go

+ 1 - 0
route/init.go

@@ -97,6 +97,7 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/project/specialTaskDataList", handler.WrapSpecialTaskDataListHandler)             // 查询专项任务数据管理任务列表
 		m.POST("/project/specialTaskFinishDataList", handler.WrapSpecialTaskFinishDataListHandler) // 查询专项任务结案数据任务列表
 		m.POST("/project/getspecialfinishdata", handler.WrapGetSpecialFinishDataHandler)           // 查询专项任务结案单结案数据
+		m.POST("/qrcode/getwxqrcode", handler.WrapGetWxQRCodeHandler)                              // 获取微信二维码
 	}
 	u := r.Group("/youngee/m/user")
 	{

+ 9 - 2
service/qrcode.go

@@ -30,7 +30,7 @@ type qrcode struct {
 
 func QrCodeInit(config *system_model.Session) {
 	qrCode := new(qrcode)
-	qrCode.sessionTTL = time.Duration(config.TTL) * time.Minute
+	qrCode.sessionTTL = 5 * time.Minute
 	QrCode = qrCode
 }
 
@@ -69,13 +69,14 @@ func (q *qrcode) GetWxQrCode(ctx context.Context, Scene string, Page string) (*h
 	// 获取access_token
 	accessToken, err := redis.Get(ctx, wxAccesssTokenKey)
 	if err != nil && err != consts.RedisNil {
-		// fmt.Printf("err: %+v\n", err)
+		fmt.Printf("err: %+v\n", err)
 		return nil, err
 	}
 	if accessToken == "" {
 		// 如果没有缓存的access token 则获取并缓存
 		accessToken, err = getAndCacheWxAccessToken(ctx)
 		if err != nil {
+			fmt.Printf("err: %+v\n", err)
 			return nil, err
 		}
 	}
@@ -89,12 +90,14 @@ func (q *qrcode) GetWxQrCode(ctx context.Context, Scene string, Page string) (*h
 	}
 	jsonBody, err := json.Marshal(qrRequest)
 	if err != nil {
+		fmt.Printf("err: %+v\n", err)
 		return nil, err
 	}
 
 	qrCodeUrl := fmt.Sprintf(qrCodeUrlFormat, accessToken)
 	resp, err := http.Post(qrCodeUrl, "application/json; charset=utf8", bytes.NewReader(jsonBody))
 	if err != nil {
+		fmt.Printf("err: %+v\n", err)
 		return nil, err
 	}
 	defer resp.Body.Close()
@@ -107,17 +110,21 @@ func (q *qrcode) GetWxQrCode(ctx context.Context, Scene string, Page string) (*h
 		var qrResponse *http_model.WxQrCodeResponse
 		decoder := json.NewDecoder(resp.Body)
 		if err = decoder.Decode(&qrResponse); err != nil {
+			fmt.Printf("decoder: %+v\nerr: %+v", decoder, err)
 			return nil, err
 		}
+		fmt.Printf("qrResponse: %+v\ndecoder: %+v\n", qrResponse, decoder)
 		return nil, nil
 	case strings.HasPrefix(header, "image"):
 		qrcodeBytes, err = ioutil.ReadAll(resp.Body)
 		if err != nil {
+			fmt.Printf("qrcodeBytes: %+v\nerr: %+v", qrcodeBytes, err)
 			return nil, err
 		}
 	}
 	data := http_model.GetWxQRCodeData{
 		QrCodeBytes: qrcodeBytes,
 	}
+	fmt.Printf("data: %+v\n", data)
 	return &data, nil
 }