浏览代码

mini 开发平台代小程序实现业务逻辑完善 (#623)

* mini 代小程序实现业务逻辑完善

* mini fix ci

* fix ci1

Co-authored-by: yanglaosan <yang88can@163.com>
Mr. Yang 3 年之前
父节点
当前提交
2bc0536c02
共有 1 个文件被更改,包括 30 次插入5 次删除
  1. 30 5
      openplatform/miniprogram/miniprogram.go

+ 30 - 5
openplatform/miniprogram/miniprogram.go

@@ -3,6 +3,9 @@ package miniprogram
 import (
 	"fmt"
 
+	"github.com/silenceper/wechat/v2/credential"
+	"github.com/silenceper/wechat/v2/miniprogram"
+	miniConfig "github.com/silenceper/wechat/v2/miniprogram/config"
 	miniContext "github.com/silenceper/wechat/v2/miniprogram/context"
 	"github.com/silenceper/wechat/v2/miniprogram/urllink"
 	openContext "github.com/silenceper/wechat/v2/openplatform/context"
@@ -14,7 +17,7 @@ import (
 type MiniProgram struct {
 	AppID       string
 	openContext *openContext.Context
-
+	*miniprogram.MiniProgram
 	authorizerRefreshToken string
 }
 
@@ -42,10 +45,13 @@ func (miniProgram *MiniProgram) SetAuthorizerRefreshToken(authorizerRefreshToken
 
 // NewMiniProgram 实例化
 func NewMiniProgram(opCtx *openContext.Context, appID string) *MiniProgram {
-	return &MiniProgram{
-		openContext: opCtx,
-		AppID:       appID,
-	}
+	miniProgram := miniprogram.NewMiniProgram(&miniConfig.Config{
+		AppID: opCtx.AppID,
+		Cache: opCtx.Cache,
+	})
+	// 设置获取access_token的函数
+	miniProgram.SetAccessTokenHandle(NewDefaultAuthrAccessToken(opCtx, appID))
+	return &MiniProgram{AppID: appID, MiniProgram: miniProgram, openContext: opCtx}
 }
 
 // GetComponent get component
@@ -65,3 +71,22 @@ func (miniProgram *MiniProgram) GetURLLink() *urllink.URLLink {
 		AccessTokenHandle: miniProgram,
 	})
 }
+
+// DefaultAuthrAccessToken 默认获取授权ak的方法
+type DefaultAuthrAccessToken struct {
+	opCtx *openContext.Context
+	appID string
+}
+
+// NewDefaultAuthrAccessToken 设置access_token
+func NewDefaultAuthrAccessToken(opCtx *openContext.Context, appID string) credential.AccessTokenHandle {
+	return &DefaultAuthrAccessToken{
+		opCtx: opCtx,
+		appID: appID,
+	}
+}
+
+// GetAccessToken 获取ak
+func (ak *DefaultAuthrAccessToken) GetAccessToken() (string, error) {
+	return ak.opCtx.GetAuthrAccessToken(ak.appID)
+}