|
|
@@ -1,6 +1,7 @@
|
|
|
package svc
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"path"
|
|
|
"time"
|
|
|
@@ -45,7 +46,6 @@ func (wc *Wechat) GetAccessToken() (string, error) {
|
|
|
if err != nil {
|
|
|
return "", err
|
|
|
}
|
|
|
- fmt.Println(res)
|
|
|
token = res.AccessToken
|
|
|
err := wc.RdCli.SetWithExpire(cacheWechatTokenPrefix, res.AccessToken, time.Duration((res.ExpiresIn-60*2))*time.Second)
|
|
|
if err != nil {
|
|
|
@@ -55,14 +55,39 @@ func (wc *Wechat) GetAccessToken() (string, error) {
|
|
|
return token, nil
|
|
|
}
|
|
|
|
|
|
-// GetAccessToken defined
|
|
|
-func (wc *Wechat) GetQrCode(scene, page string) (string, error) {
|
|
|
+func (wc *Wechat) GenQrId(prefix string, params interface{}) (string, error) {
|
|
|
+ uuid := utils.GetUUID()
|
|
|
+ ube, err := json.Marshal(params)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ err = wc.RdCli.SetWithExpire(fmt.Sprintf(prefix, uuid), string(ube), time.Duration(1)*time.Hour)
|
|
|
+ return uuid, err
|
|
|
+}
|
|
|
+
|
|
|
+func (wc *Wechat) GetQrParams(prefix string, uuid string, params interface{}) error {
|
|
|
+ ube := ""
|
|
|
+ err := wc.RdCli.GetCache(fmt.Sprintf(prefix, uuid), &ube)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = json.Unmarshal([]byte(ube), params)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+// GenQrCode defined
|
|
|
+// 接口 B:适用于需要的码数量极多的业务场景
|
|
|
+// 生成小程序码,可接受页面参数较短,生成个数不受限。
|
|
|
+func (wc *Wechat) GenQrCode(scene, page string) (string, error) {
|
|
|
token, err := wc.GetAccessToken()
|
|
|
if err != nil {
|
|
|
return "", err
|
|
|
}
|
|
|
- req := utils.Post("https://api.weixin.qq.com/wxa/getwxacodeunlimit")
|
|
|
- req.Param("access_token", token)
|
|
|
+ req := utils.Post("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token)
|
|
|
+ req.JSONBody(map[string]interface{}{"scene": scene})
|
|
|
ph := path.Join("asserts", "qrcode", scene+".png")
|
|
|
err = req.ToFile(ph)
|
|
|
if err != nil {
|