mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
* [feature] Format the code and improve Mini Program authorization to obtain openid(miniprogram/auth/auth.go Code2Session) * [feature] CheckEncryptedData (https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/user-info/auth.checkEncryptedData.html) * upgrade json error * upgrade json error Co-authored-by: houseme <houseme@outlook.com>
61 lines
2.0 KiB
Go
61 lines
2.0 KiB
Go
package officialaccount
|
||
|
||
import (
|
||
"github.com/silenceper/wechat/v2/credential"
|
||
"github.com/silenceper/wechat/v2/officialaccount"
|
||
offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
|
||
opContext "github.com/silenceper/wechat/v2/openplatform/context"
|
||
"github.com/silenceper/wechat/v2/openplatform/officialaccount/js"
|
||
"github.com/silenceper/wechat/v2/openplatform/officialaccount/oauth"
|
||
)
|
||
|
||
// OfficialAccount 代公众号实现业务
|
||
type OfficialAccount struct {
|
||
// 授权的公众号的appID
|
||
appID string
|
||
*officialaccount.OfficialAccount
|
||
}
|
||
|
||
// NewOfficialAccount 实例化
|
||
// appID :为授权方公众号 APPID,非开放平台第三方平台 APPID
|
||
func NewOfficialAccount(opCtx *opContext.Context, appID string) *OfficialAccount {
|
||
officialAccount := officialaccount.NewOfficialAccount(&offConfig.Config{
|
||
AppID: opCtx.AppID,
|
||
EncodingAESKey: opCtx.EncodingAESKey,
|
||
Token: opCtx.Token,
|
||
Cache: opCtx.Cache,
|
||
})
|
||
// 设置获取access_token的函数
|
||
officialAccount.SetAccessTokenHandle(NewDefaultAuthrAccessToken(opCtx, appID))
|
||
return &OfficialAccount{appID: appID, OfficialAccount: officialAccount}
|
||
}
|
||
|
||
// PlatformOauth 平台代发起oauth2网页授权
|
||
func (officialAccount *OfficialAccount) PlatformOauth() *oauth.Oauth {
|
||
return oauth.NewOauth(officialAccount.GetContext())
|
||
}
|
||
|
||
// PlatformJs 平台代获取js-sdk配置
|
||
func (officialAccount *OfficialAccount) PlatformJs() *js.Js {
|
||
return js.NewJs(officialAccount.GetContext(), officialAccount.appID)
|
||
}
|
||
|
||
// DefaultAuthrAccessToken 默认获取授权ak的方法
|
||
type DefaultAuthrAccessToken struct {
|
||
opCtx *opContext.Context
|
||
appID string
|
||
}
|
||
|
||
// NewDefaultAuthrAccessToken New
|
||
func NewDefaultAuthrAccessToken(opCtx *opContext.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)
|
||
}
|